(define hash2610 (hasheq))
(define kw2080 (string->keyword "empty"))
(define hash2725 (hash))
(define kw2846 (string->keyword "direct"))
(define kw2615 (string->keyword "anonymous"))
(define hash2589 (hasheqv))
(define call/ec call-with-escape-continuation)
(define qq-append
  (lambda (a_0 b_0)
    (if (list? a_0)
      (append a_0 b_0)
      (raise-argument-error 'unquote-splicing "list?" a_0))))
(define fixnum-for-every-system?
  (lambda (v_0)
    (if (fixnum? v_0) (if (fx>= v_0 -536870912) (fx<= v_0 536870911) #f) #f)))
(define bad-list$1
  (|#%name|
   bad-list
   (lambda (who_0 orig-l_0)
     (begin (raise-mismatch-error who_0 "not a proper list: " orig-l_0)))))
(define memq
  (|#%name|
   memq
   (lambda (v_0 orig-l_0)
     (begin
       (letrec*
        ((loop_0
          (|#%name|
           loop
           (lambda (ls_0)
             (begin
               (if (null? ls_0)
                 #f
                 (if (not (pair? ls_0))
                   (raise-mismatch-error 'memq "not a proper list: " orig-l_0)
                   (if (eq? v_0 (car ls_0)) ls_0 (loop_0 (cdr ls_0))))))))))
        (loop_0 orig-l_0))))))
(define memv
  (|#%name|
   memv
   (lambda (v_0 orig-l_0)
     (begin
       (letrec*
        ((loop_0
          (|#%name|
           loop
           (lambda (ls_0)
             (begin
               (if (null? ls_0)
                 #f
                 (if (not (pair? ls_0))
                   (raise-mismatch-error 'memv "not a proper list: " orig-l_0)
                   (if (eqv? v_0 (car ls_0)) ls_0 (loop_0 (cdr ls_0))))))))))
        (loop_0 orig-l_0))))))
(define member
  (let ((default_0
         (|#%name|
          member
          (lambda (v_0 orig-l_0)
            (begin
              (letrec*
               ((loop_0
                 (|#%name|
                  loop
                  (lambda (ls_0)
                    (begin
                      (if (null? ls_0)
                        #f
                        (if (not (pair? ls_0))
                          (raise-mismatch-error
                           'member
                           "not a proper list: "
                           orig-l_0)
                          (if (equal? v_0 (car ls_0))
                            ls_0
                            (loop_0 (cdr ls_0))))))))))
               (loop_0 orig-l_0)))))))
    (|#%name|
     member
     (case-lambda
      ((v_0 orig-l_0) (begin (default_0 v_0 orig-l_0)))
      ((v_0 orig-l_0 eq?_0)
       (begin
         (if (if (procedure? eq?_0) (procedure-arity-includes? eq?_0 2) #f)
           (void)
           (raise-argument-error
            'member
            "(procedure-arity-includes/c 2)"
            eq?_0))
         ((|#%name|
           member
           (lambda (v_1 orig-l_1)
             (begin
               (letrec*
                ((loop_0
                  (|#%name|
                   loop
                   (lambda (ls_0)
                     (begin
                       (if (null? ls_0)
                         #f
                         (if (not (pair? ls_0))
                           (raise-mismatch-error
                            'member
                            "not a proper list: "
                            orig-l_1)
                           (if (|#%app| eq?_0 v_1 (car ls_0))
                             ls_0
                             (loop_0 (cdr ls_0))))))))))
                (loop_0 orig-l_1)))))
          v_0
          orig-l_0)))))))
(define call-with-exception-handler
  (lambda (exnh_0 thunk_0)
    (begin0
      (with-continuation-mark*
       push-authentic
       exception-handler-key
       exnh_0
       (|#%app| thunk_0))
      (void))))
(define not-there (gensym))
(define do-hash-update
  (lambda (who_0 mut?_0 set_0 ht_0 key_0 xform_0 default_0)
    (begin
      (let ((v_0 (hash-ref ht_0 key_0 default_0)))
        (if (eq? v_0 not-there)
          (raise-mismatch-error who_0 "no value found for key: " key_0)
          (|#%app| set_0 ht_0 key_0 (|#%app| xform_0 v_0)))))))
(define hash-update!
  (case-lambda
   ((ht_0 key_0 xform_0 default_0)
    (do-hash-update 'hash-update! #t hash-set! ht_0 key_0 xform_0 default_0))
   ((ht_0 key_0 xform_0)
    (do-hash-update 'hash-update! #t hash-set! ht_0 key_0 xform_0 not-there))))
(define path-string?
  (lambda (s_0)
    (let ((or-part_0 (path? s_0)))
      (if or-part_0
        or-part_0
        (if (string? s_0)
          (let ((or-part_1 (relative-path? s_0)))
            (if or-part_1 or-part_1 (absolute-path? s_0)))
          #f)))))
(define-values
 (prop:keyword-impersonator keyword-impersonator? keyword-impersonator-ref)
 (make-struct-type-property 'keyword-impersonator))
(define keyword-procedure-impersonator-of
  (lambda (v_0)
    (if (keyword-impersonator? v_0)
      (|#%app| (keyword-impersonator-ref v_0) v_0)
      #f)))
(define-values
 (struct:keyword-procedure
  mk-kw-proc
  keyword-procedure?
  keyword-procedure-ref
  keyword-procedure-set!)
 (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 keyword-procedure-required
  (make-struct-field-accessor keyword-procedure-ref 2))
(define keyword-procedure-allowed
  (make-struct-field-accessor keyword-procedure-ref 3))
(define-values
 (prop:procedure-accessor procedure-accessor? procedure-accessor-ref)
 (make-struct-type-property
  'procedure
  (lambda (v_0 info-l_0)
    (if (exact-integer? v_0)
      (make-struct-field-accessor (list-ref info-l_0 3) v_0)
      #f))))
(define-values
 (new-prop:procedure new-procedure? new-procedure-ref)
 (make-struct-type-property
  'procedure
  #f
  (list (cons prop:procedure values) (cons prop:procedure-accessor values))
  #t))
(define procedure-keywords
  (lambda (p_0)
    (if (keyword-procedure? p_0)
      (let ((app_0 (keyword-procedure-required p_0)))
        (values app_0 (keyword-procedure-allowed p_0)))
      (if (procedure? p_0)
        (if (new-procedure? p_0)
          (let ((v_0 (new-procedure-ref p_0)))
            (if (procedure? v_0)
              (procedure-keywords v_0)
              (let ((a_0 (procedure-accessor-ref p_0)))
                (if a_0
                  (procedure-keywords (|#%app| a_0 p_0))
                  (values null null)))))
          (values null null))
        (raise-argument-error 'procedure-keywords "procedure?" p_0)))))
(define check-struct-type
  (lambda (name_0 what_0)
    (begin
      (if what_0
        (if (struct-type? what_0)
          (void)
          (raise-argument-error name_0 "(or/c struct-type? #f)" what_0))
        (void))
      what_0)))
(define reverse$1
  (|#%name|
   reverse
   (lambda (l_0)
     (begin
       (begin
         (letrec*
          ((loop_0
            (|#%name|
             loop
             (lambda (a_0 l_1)
               (begin
                 (if (null? l_1)
                   a_0
                   (let ((app_0 (cons (car l_1) a_0)))
                     (loop_0 app_0 (cdr l_1)))))))))
          (loop_0 null l_0)))))))
(define-values
 (sort vector-sort vector-sort!)
 (let ((generic-sort_0
        (letrec ((copying-mergesort_0
                  (|#%name|
                   copying-mergesort
                   (lambda (A_0 less-than?_0 Alo_0 Blo_0 n_0)
                     (begin
                       (if (unsafe-fx= n_0 1)
                         (unsafe-vector-set!
                          A_0
                          Blo_0
                          (unsafe-vector-ref A_0 Alo_0))
                         (if (unsafe-fx= n_0 2)
                           (let ((x_0 (unsafe-vector-ref A_0 Alo_0)))
                             (let ((y_0
                                    (unsafe-vector-ref
                                     A_0
                                     (unsafe-fx+ Alo_0 1))))
                               (let ((x_1 x_0))
                                 (if (|#%app| less-than?_0 y_0 x_1)
                                   (begin
                                     (unsafe-vector-set! A_0 Blo_0 y_0)
                                     (unsafe-vector-set!
                                      A_0
                                      (unsafe-fx+ Blo_0 1)
                                      x_1))
                                   (begin
                                     (unsafe-vector-set! A_0 Blo_0 x_1)
                                     (unsafe-vector-set!
                                      A_0
                                      (unsafe-fx+ Blo_0 1)
                                      y_0))))))
                           (if (unsafe-fx< n_0 16)
                             (begin
                               (unsafe-vector-set!
                                A_0
                                Blo_0
                                (unsafe-vector-ref A_0 Alo_0))
                               (letrec*
                                ((iloop_0
                                  (|#%name|
                                   iloop
                                   (lambda (i_0)
                                     (begin
                                       (if (unsafe-fx< i_0 n_0)
                                         (let ((ref-i_0
                                                (unsafe-vector-ref
                                                 A_0
                                                 (unsafe-fx+ Alo_0 i_0))))
                                           (letrec*
                                            ((jloop_0
                                              (|#%name|
                                               jloop
                                               (lambda (j_0)
                                                 (begin
                                                   (let ((ref-j-1_0
                                                          (unsafe-vector-ref
                                                           A_0
                                                           (unsafe-fx-
                                                            j_0
                                                            1))))
                                                     (if (if (unsafe-fx<
                                                              Blo_0
                                                              j_0)
                                                           (|#%app|
                                                            less-than?_0
                                                            ref-i_0
                                                            ref-j-1_0)
                                                           #f)
                                                       (begin
                                                         (unsafe-vector-set!
                                                          A_0
                                                          j_0
                                                          ref-j-1_0)
                                                         (jloop_0
                                                          (unsafe-fx- j_0 1)))
                                                       (begin
                                                         (unsafe-vector-set!
                                                          A_0
                                                          j_0
                                                          ref-i_0)
                                                         (iloop_0
                                                          (unsafe-fx+
                                                           i_0
                                                           1))))))))))
                                            (jloop_0 (unsafe-fx+ Blo_0 i_0))))
                                         (void)))))))
                                (iloop_0 1)))
                             (let ((n/2-_0 (unsafe-fxrshift n_0 1)))
                               (let ((n/2+_0 (unsafe-fx- n_0 n/2-_0)))
                                 (let ((Amid1_0 (unsafe-fx+ Alo_0 n/2-_0)))
                                   (let ((Amid2_0 (unsafe-fx+ Alo_0 n/2+_0)))
                                     (let ((Bmid1_0 (unsafe-fx+ Blo_0 n/2-_0)))
                                       (begin
                                         (copying-mergesort_0
                                          A_0
                                          less-than?_0
                                          Amid1_0
                                          Bmid1_0
                                          n/2+_0)
                                         (copying-mergesort_0
                                          A_0
                                          less-than?_0
                                          Alo_0
                                          Amid2_0
                                          n/2-_0)
                                         (let ((b2_0 (unsafe-fx+ Blo_0 n_0)))
                                           (letrec*
                                            ((loop_0
                                              (|#%name|
                                               loop
                                               (lambda (a1_0 b1_0 c1_0)
                                                 (begin
                                                   (let ((x_0
                                                          (unsafe-vector-ref
                                                           A_0
                                                           a1_0)))
                                                     (let ((y_0
                                                            (unsafe-vector-ref
                                                             A_0
                                                             b1_0)))
                                                       (let ((x_1 x_0))
                                                         (if (not
                                                              (|#%app|
                                                               less-than?_0
                                                               y_0
                                                               x_1))
                                                           (begin
                                                             (unsafe-vector-set!
                                                              A_0
                                                              c1_0
                                                              x_1)
                                                             (let ((a1_1
                                                                    (unsafe-fx+
                                                                     a1_0
                                                                     1)))
                                                               (let ((c1_1
                                                                      (unsafe-fx+
                                                                       c1_0
                                                                       1)))
                                                                 (if (unsafe-fx<
                                                                      c1_1
                                                                      b1_0)
                                                                   (loop_0
                                                                    a1_1
                                                                    b1_0
                                                                    c1_1)
                                                                   (void)))))
                                                           (begin
                                                             (unsafe-vector-set!
                                                              A_0
                                                              c1_0
                                                              y_0)
                                                             (let ((b1_1
                                                                    (unsafe-fx+
                                                                     b1_0
                                                                     1)))
                                                               (let ((c1_1
                                                                      (unsafe-fx+
                                                                       c1_0
                                                                       1)))
                                                                 (if (unsafe-fx<=
                                                                      b2_0
                                                                      b1_1)
                                                                   (letrec*
                                                                    ((loop_1
                                                                      (|#%name|
                                                                       loop
                                                                       (lambda (a1_1
                                                                                c1_2)
                                                                         (begin
                                                                           (if (unsafe-fx<
                                                                                c1_2
                                                                                b1_1)
                                                                             (begin
                                                                               (unsafe-vector-set!
                                                                                A_0
                                                                                c1_2
                                                                                (unsafe-vector-ref
                                                                                 A_0
                                                                                 a1_1))
                                                                               (loop_1
                                                                                (unsafe-fx+
                                                                                 a1_1
                                                                                 1)
                                                                                (unsafe-fx+
                                                                                 c1_2
                                                                                 1)))
                                                                             (void)))))))
                                                                    (loop_1
                                                                     a1_0
                                                                     c1_1))
                                                                   (loop_0
                                                                    a1_0
                                                                    b1_1
                                                                    c1_1))))))))))))))
                                            (loop_0
                                             Amid2_0
                                             Bmid1_0
                                             Blo_0)))))))))))))))))
          (|#%name|
           generic-sort
           (lambda (A_0 less-than?_0 n_0)
             (begin
               (let ((n/2-_0 (unsafe-fxrshift n_0 1)))
                 (let ((n/2+_0 (unsafe-fx- n_0 n/2-_0)))
                   (begin
                     (copying-mergesort_0 A_0 less-than?_0 n/2-_0 n_0 n/2+_0)
                     (if (zero? n/2-_0)
                       (void)
                       (copying-mergesort_0 A_0 less-than?_0 0 n/2+_0 n/2-_0))
                     (letrec*
                      ((loop_0
                        (|#%name|
                         loop
                         (lambda (a1_0 b1_0 c1_0)
                           (begin
                             (let ((x_0 (unsafe-vector-ref A_0 a1_0)))
                               (let ((y_0 (unsafe-vector-ref A_0 b1_0)))
                                 (let ((x_1 x_0))
                                   (if (|#%app| less-than?_0 x_1 y_0)
                                     (begin
                                       (unsafe-vector-set! A_0 c1_0 x_1)
                                       (let ((a1_1 (unsafe-fx+ a1_0 1)))
                                         (let ((c1_1 (unsafe-fx+ c1_0 1)))
                                           (if (unsafe-fx< c1_1 b1_0)
                                             (loop_0 a1_1 b1_0 c1_1)
                                             (void)))))
                                     (begin
                                       (unsafe-vector-set! A_0 c1_0 y_0)
                                       (let ((b1_1 (unsafe-fx+ b1_0 1)))
                                         (let ((c1_1 (unsafe-fx+ c1_0 1)))
                                           (if (unsafe-fx<= n_0 b1_1)
                                             (letrec*
                                              ((loop_1
                                                (|#%name|
                                                 loop
                                                 (lambda (a1_1 c1_2)
                                                   (begin
                                                     (if (unsafe-fx< c1_2 b1_1)
                                                       (begin
                                                         (unsafe-vector-set!
                                                          A_0
                                                          c1_2
                                                          (unsafe-vector-ref
                                                           A_0
                                                           a1_1))
                                                         (loop_1
                                                          (unsafe-fx+ a1_1 1)
                                                          (unsafe-fx+ c1_2 1)))
                                                       (void)))))))
                                              (loop_1 a1_0 c1_1))
                                             (loop_0
                                              a1_0
                                              b1_1
                                              c1_1))))))))))))))
                      (loop_0 n_0 n/2+_0 0)))))))))))
   (let ((generic-sort/key_0
          (letrec ((copying-mergesort_0
                    (|#%name|
                     copying-mergesort
                     (lambda (A_0 key_0 less-than?_0 Alo_0 Blo_0 n_0)
                       (begin
                         (if (unsafe-fx= n_0 1)
                           (unsafe-vector-set!
                            A_0
                            Blo_0
                            (unsafe-vector-ref A_0 Alo_0))
                           (if (unsafe-fx= n_0 2)
                             (let ((x_0 (unsafe-vector-ref A_0 Alo_0)))
                               (let ((y_0
                                      (unsafe-vector-ref
                                       A_0
                                       (unsafe-fx+ Alo_0 1))))
                                 (let ((x_1 x_0))
                                   (if (if key_0
                                         (let ((app_0 (|#%app| key_0 y_0)))
                                           (|#%app|
                                            less-than?_0
                                            app_0
                                            (|#%app| key_0 x_1)))
                                         (|#%app| less-than?_0 y_0 x_1))
                                     (begin
                                       (unsafe-vector-set! A_0 Blo_0 y_0)
                                       (unsafe-vector-set!
                                        A_0
                                        (unsafe-fx+ Blo_0 1)
                                        x_1))
                                     (begin
                                       (unsafe-vector-set! A_0 Blo_0 x_1)
                                       (unsafe-vector-set!
                                        A_0
                                        (unsafe-fx+ Blo_0 1)
                                        y_0))))))
                             (if (unsafe-fx< n_0 16)
                               (begin
                                 (unsafe-vector-set!
                                  A_0
                                  Blo_0
                                  (unsafe-vector-ref A_0 Alo_0))
                                 (letrec*
                                  ((iloop_0
                                    (|#%name|
                                     iloop
                                     (lambda (i_0)
                                       (begin
                                         (if (unsafe-fx< i_0 n_0)
                                           (let ((ref-i_0
                                                  (unsafe-vector-ref
                                                   A_0
                                                   (unsafe-fx+ Alo_0 i_0))))
                                             (letrec*
                                              ((jloop_0
                                                (|#%name|
                                                 jloop
                                                 (lambda (j_0)
                                                   (begin
                                                     (let ((ref-j-1_0
                                                            (unsafe-vector-ref
                                                             A_0
                                                             (unsafe-fx-
                                                              j_0
                                                              1))))
                                                       (if (if (unsafe-fx<
                                                                Blo_0
                                                                j_0)
                                                             (if key_0
                                                               (let ((app_0
                                                                      (|#%app|
                                                                       key_0
                                                                       ref-i_0)))
                                                                 (|#%app|
                                                                  less-than?_0
                                                                  app_0
                                                                  (|#%app|
                                                                   key_0
                                                                   ref-j-1_0)))
                                                               (|#%app|
                                                                less-than?_0
                                                                ref-i_0
                                                                ref-j-1_0))
                                                             #f)
                                                         (begin
                                                           (unsafe-vector-set!
                                                            A_0
                                                            j_0
                                                            ref-j-1_0)
                                                           (jloop_0
                                                            (unsafe-fx-
                                                             j_0
                                                             1)))
                                                         (begin
                                                           (unsafe-vector-set!
                                                            A_0
                                                            j_0
                                                            ref-i_0)
                                                           (iloop_0
                                                            (unsafe-fx+
                                                             i_0
                                                             1))))))))))
                                              (jloop_0
                                               (unsafe-fx+ Blo_0 i_0))))
                                           (void)))))))
                                  (iloop_0 1)))
                               (let ((n/2-_0 (unsafe-fxrshift n_0 1)))
                                 (let ((n/2+_0 (unsafe-fx- n_0 n/2-_0)))
                                   (let ((Amid1_0 (unsafe-fx+ Alo_0 n/2-_0)))
                                     (let ((Amid2_0 (unsafe-fx+ Alo_0 n/2+_0)))
                                       (let ((Bmid1_0
                                              (unsafe-fx+ Blo_0 n/2-_0)))
                                         (begin
                                           (copying-mergesort_0
                                            A_0
                                            key_0
                                            less-than?_0
                                            Amid1_0
                                            Bmid1_0
                                            n/2+_0)
                                           (copying-mergesort_0
                                            A_0
                                            key_0
                                            less-than?_0
                                            Alo_0
                                            Amid2_0
                                            n/2-_0)
                                           (let ((b2_0 (unsafe-fx+ Blo_0 n_0)))
                                             (letrec*
                                              ((loop_0
                                                (|#%name|
                                                 loop
                                                 (lambda (a1_0 b1_0 c1_0)
                                                   (begin
                                                     (let ((x_0
                                                            (unsafe-vector-ref
                                                             A_0
                                                             a1_0)))
                                                       (let ((y_0
                                                              (unsafe-vector-ref
                                                               A_0
                                                               b1_0)))
                                                         (let ((x_1 x_0))
                                                           (if (not
                                                                (if key_0
                                                                  (let ((app_0
                                                                         (|#%app|
                                                                          key_0
                                                                          y_0)))
                                                                    (|#%app|
                                                                     less-than?_0
                                                                     app_0
                                                                     (|#%app|
                                                                      key_0
                                                                      x_1)))
                                                                  (|#%app|
                                                                   less-than?_0
                                                                   y_0
                                                                   x_1)))
                                                             (begin
                                                               (unsafe-vector-set!
                                                                A_0
                                                                c1_0
                                                                x_1)
                                                               (let ((a1_1
                                                                      (unsafe-fx+
                                                                       a1_0
                                                                       1)))
                                                                 (let ((c1_1
                                                                        (unsafe-fx+
                                                                         c1_0
                                                                         1)))
                                                                   (if (unsafe-fx<
                                                                        c1_1
                                                                        b1_0)
                                                                     (loop_0
                                                                      a1_1
                                                                      b1_0
                                                                      c1_1)
                                                                     (void)))))
                                                             (begin
                                                               (unsafe-vector-set!
                                                                A_0
                                                                c1_0
                                                                y_0)
                                                               (let ((b1_1
                                                                      (unsafe-fx+
                                                                       b1_0
                                                                       1)))
                                                                 (let ((c1_1
                                                                        (unsafe-fx+
                                                                         c1_0
                                                                         1)))
                                                                   (if (unsafe-fx<=
                                                                        b2_0
                                                                        b1_1)
                                                                     (letrec*
                                                                      ((loop_1
                                                                        (|#%name|
                                                                         loop
                                                                         (lambda (a1_1
                                                                                  c1_2)
                                                                           (begin
                                                                             (if (unsafe-fx<
                                                                                  c1_2
                                                                                  b1_1)
                                                                               (begin
                                                                                 (unsafe-vector-set!
                                                                                  A_0
                                                                                  c1_2
                                                                                  (unsafe-vector-ref
                                                                                   A_0
                                                                                   a1_1))
                                                                                 (loop_1
                                                                                  (unsafe-fx+
                                                                                   a1_1
                                                                                   1)
                                                                                  (unsafe-fx+
                                                                                   c1_2
                                                                                   1)))
                                                                               (void)))))))
                                                                      (loop_1
                                                                       a1_0
                                                                       c1_1))
                                                                     (loop_0
                                                                      a1_0
                                                                      b1_1
                                                                      c1_1))))))))))))))
                                              (loop_0
                                               Amid2_0
                                               Bmid1_0
                                               Blo_0)))))))))))))))))
            (|#%name|
             generic-sort/key
             (lambda (A_0 less-than?_0 n_0 key_0)
               (begin
                 (let ((n/2-_0 (unsafe-fxrshift n_0 1)))
                   (let ((n/2+_0 (unsafe-fx- n_0 n/2-_0)))
                     (begin
                       (copying-mergesort_0
                        A_0
                        key_0
                        less-than?_0
                        n/2-_0
                        n_0
                        n/2+_0)
                       (if (zero? n/2-_0)
                         (void)
                         (copying-mergesort_0
                          A_0
                          key_0
                          less-than?_0
                          0
                          n/2+_0
                          n/2-_0))
                       (letrec*
                        ((loop_0
                          (|#%name|
                           loop
                           (lambda (a1_0 b1_0 c1_0)
                             (begin
                               (let ((x_0 (unsafe-vector-ref A_0 a1_0)))
                                 (let ((y_0 (unsafe-vector-ref A_0 b1_0)))
                                   (let ((x_1 x_0))
                                     (if (if key_0
                                           (let ((app_0 (|#%app| key_0 x_1)))
                                             (|#%app|
                                              less-than?_0
                                              app_0
                                              (|#%app| key_0 y_0)))
                                           (|#%app| less-than?_0 x_1 y_0))
                                       (begin
                                         (unsafe-vector-set! A_0 c1_0 x_1)
                                         (let ((a1_1 (unsafe-fx+ a1_0 1)))
                                           (let ((c1_1 (unsafe-fx+ c1_0 1)))
                                             (if (unsafe-fx< c1_1 b1_0)
                                               (loop_0 a1_1 b1_0 c1_1)
                                               (void)))))
                                       (begin
                                         (unsafe-vector-set! A_0 c1_0 y_0)
                                         (let ((b1_1 (unsafe-fx+ b1_0 1)))
                                           (let ((c1_1 (unsafe-fx+ c1_0 1)))
                                             (if (unsafe-fx<= n_0 b1_1)
                                               (letrec*
                                                ((loop_1
                                                  (|#%name|
                                                   loop
                                                   (lambda (a1_1 c1_2)
                                                     (begin
                                                       (if (unsafe-fx<
                                                            c1_2
                                                            b1_1)
                                                         (begin
                                                           (unsafe-vector-set!
                                                            A_0
                                                            c1_2
                                                            (unsafe-vector-ref
                                                             A_0
                                                             a1_1))
                                                           (loop_1
                                                            (unsafe-fx+ a1_1 1)
                                                            (unsafe-fx+
                                                             c1_2
                                                             1)))
                                                         (void)))))))
                                                (loop_1 a1_0 c1_1))
                                               (loop_0
                                                a1_0
                                                b1_1
                                                c1_1))))))))))))))
                        (loop_0 n_0 n/2+_0 0)))))))))))
     (values
      (letrec ((loop_0
                (|#%name|
                 loop
                 (lambda (getkey_0 less-than?_0 last_0 next_0)
                   (begin
                     (let ((or-part_0 (null? next_0)))
                       (if or-part_0
                         or-part_0
                         (if (not
                              (if getkey_0
                                (let ((app_0
                                       (|#%app| getkey_0 (unsafe-car next_0))))
                                  (|#%app|
                                   less-than?_0
                                   app_0
                                   (|#%app| getkey_0 last_0)))
                                (|#%app|
                                 less-than?_0
                                 (unsafe-car next_0)
                                 last_0)))
                           (loop_0
                            getkey_0
                            less-than?_0
                            (unsafe-car next_0)
                            (unsafe-cdr next_0))
                           #f)))))))
               (loop_1
                (|#%name|
                 loop
                 (lambda (less-than?_0 last_0 next_0)
                   (begin
                     (let ((or-part_0 (null? next_0)))
                       (if or-part_0
                         or-part_0
                         (if (not
                              (|#%app|
                               less-than?_0
                               (unsafe-car next_0)
                               last_0))
                           (loop_1
                            less-than?_0
                            (unsafe-car next_0)
                            (unsafe-cdr next_0))
                           #f))))))))
        (case-lambda
         ((lst_0 less-than?_0)
          (let ((n_0 (length lst_0)))
            (if (unsafe-fx= n_0 0)
              lst_0
              (if (let ((app_0 (car lst_0)))
                    (loop_1 less-than?_0 app_0 (cdr lst_0)))
                lst_0
                (if (unsafe-fx<= n_0 3)
                  (if (unsafe-fx= n_0 1)
                    lst_0
                    (if (unsafe-fx= n_0 2)
                      (let ((app_0 (cadr lst_0))) (list app_0 (car lst_0)))
                      (let ((a_0 (car lst_0)))
                        (let ((b_0 (cadr lst_0)))
                          (let ((c_0 (caddr lst_0)))
                            (let ((b_1 b_0) (a_1 a_0))
                              (if (|#%app| less-than?_0 b_1 a_1)
                                (if (|#%app| less-than?_0 c_0 b_1)
                                  (list c_0 b_1 a_1)
                                  (if (|#%app| less-than?_0 c_0 a_1)
                                    (list b_1 c_0 a_1)
                                    (list b_1 a_1 c_0)))
                                (if (|#%app| less-than?_0 c_0 a_1)
                                  (list c_0 a_1 b_1)
                                  (list a_1 c_0 b_1)))))))))
                  (let ((vec_0 (make-vector (+ n_0 (ceiling (/ n_0 2))))))
                    (begin
                      (letrec*
                       ((loop_2
                         (|#%name|
                          loop
                          (lambda (i_0 lst_1)
                            (begin
                              (if (pair? lst_1)
                                (begin
                                  (vector-set! vec_0 i_0 (car lst_1))
                                  (let ((app_0 (add1 i_0)))
                                    (loop_2 app_0 (cdr lst_1))))
                                (void)))))))
                       (loop_2 0 lst_0))
                      (generic-sort_0 vec_0 less-than?_0 n_0)
                      (letrec*
                       ((loop_2
                         (|#%name|
                          loop
                          (lambda (i_0 r_0)
                            (begin
                              (let ((i_1 (sub1 i_0)))
                                (if (< i_1 0)
                                  r_0
                                  (loop_2
                                   i_1
                                   (cons (vector-ref vec_0 i_1) r_0)))))))))
                       (loop_2 n_0 '())))))))))
         ((lst_0 less-than?_0 getkey_0)
          (if (if getkey_0 (not (eq? values getkey_0)) #f)
            (|#%app|
             (check-not-unsafe-undefined sort 'sort)
             lst_0
             less-than?_0
             getkey_0
             #f)
            (|#%app|
             (check-not-unsafe-undefined sort 'sort)
             lst_0
             less-than?_0)))
         ((lst_0 less-than?_0 getkey_0 cache-keys?_0)
          (if (if getkey_0 (not (eq? values getkey_0)) #f)
            (let ((n_0 (length lst_0)))
              (if (unsafe-fx= n_0 0)
                lst_0
                (if cache-keys?_0
                  (let ((vec_0 (make-vector (+ n_0 (ceiling (/ n_0 2))))))
                    (begin
                      (letrec*
                       ((loop_2
                         (|#%name|
                          loop
                          (lambda (i_0 lst_1)
                            (begin
                              (if (pair? lst_1)
                                (let ((x_0 (car lst_1)))
                                  (begin
                                    (unsafe-vector-set!
                                     vec_0
                                     i_0
                                     (cons (|#%app| getkey_0 x_0) x_0))
                                    (loop_2 (unsafe-fx+ i_0 1) (cdr lst_1))))
                                (void)))))))
                       (loop_2 0 lst_0))
                      (generic-sort/key_0 vec_0 less-than?_0 n_0 unsafe-car)
                      (letrec*
                       ((loop_2
                         (|#%name|
                          loop
                          (lambda (i_0 r_0)
                            (begin
                              (let ((i_1 (unsafe-fx- i_0 1)))
                                (if (unsafe-fx< i_1 0)
                                  r_0
                                  (loop_2
                                   i_1
                                   (cons
                                    (unsafe-cdr (unsafe-vector-ref vec_0 i_1))
                                    r_0)))))))))
                       (loop_2 n_0 '()))))
                  (if (let ((app_0 (car lst_0)))
                        (loop_0 getkey_0 less-than?_0 app_0 (cdr lst_0)))
                    lst_0
                    (if (unsafe-fx<= n_0 3)
                      (if (unsafe-fx= n_0 1)
                        lst_0
                        (if (unsafe-fx= n_0 2)
                          (let ((app_0 (cadr lst_0))) (list app_0 (car lst_0)))
                          (let ((a_0 (car lst_0)))
                            (let ((b_0 (cadr lst_0)))
                              (let ((c_0 (caddr lst_0)))
                                (let ((b_1 b_0) (a_1 a_0))
                                  (if (if getkey_0
                                        (let ((app_0 (|#%app| getkey_0 b_1)))
                                          (|#%app|
                                           less-than?_0
                                           app_0
                                           (|#%app| getkey_0 a_1)))
                                        (|#%app| less-than?_0 b_1 a_1))
                                    (if (if getkey_0
                                          (let ((app_0 (|#%app| getkey_0 c_0)))
                                            (|#%app|
                                             less-than?_0
                                             app_0
                                             (|#%app| getkey_0 b_1)))
                                          (|#%app| less-than?_0 c_0 b_1))
                                      (list c_0 b_1 a_1)
                                      (if (if getkey_0
                                            (let ((app_0
                                                   (|#%app| getkey_0 c_0)))
                                              (|#%app|
                                               less-than?_0
                                               app_0
                                               (|#%app| getkey_0 a_1)))
                                            (|#%app| less-than?_0 c_0 a_1))
                                        (list b_1 c_0 a_1)
                                        (list b_1 a_1 c_0)))
                                    (if (if getkey_0
                                          (let ((app_0 (|#%app| getkey_0 c_0)))
                                            (|#%app|
                                             less-than?_0
                                             app_0
                                             (|#%app| getkey_0 a_1)))
                                          (|#%app| less-than?_0 c_0 a_1))
                                      (list c_0 a_1 b_1)
                                      (list a_1 c_0 b_1)))))))))
                      (let ((vec_0 (make-vector (+ n_0 (ceiling (/ n_0 2))))))
                        (begin
                          (letrec*
                           ((loop_2
                             (|#%name|
                              loop
                              (lambda (i_0 lst_1)
                                (begin
                                  (if (pair? lst_1)
                                    (begin
                                      (vector-set! vec_0 i_0 (car lst_1))
                                      (let ((app_0 (add1 i_0)))
                                        (loop_2 app_0 (cdr lst_1))))
                                    (void)))))))
                           (loop_2 0 lst_0))
                          (generic-sort/key_0 vec_0 less-than?_0 n_0 getkey_0)
                          (letrec*
                           ((loop_2
                             (|#%name|
                              loop
                              (lambda (i_0 r_0)
                                (begin
                                  (let ((i_1 (sub1 i_0)))
                                    (if (< i_1 0)
                                      r_0
                                      (loop_2
                                       i_1
                                       (cons
                                        (vector-ref vec_0 i_1)
                                        r_0)))))))))
                           (loop_2 n_0 '())))))))))
            (|#%app|
             (check-not-unsafe-undefined sort 'sort)
             lst_0
             less-than?_0)))))
      (case-lambda
       ((vec_0 less-than?_0 start_0 end_0)
        (let ((n_0 (- end_0 start_0)))
          (let ((dst-vec_0 (make-vector n_0)))
            (begin
              (if (unsafe-fx= n_0 0)
                (void)
                (if (letrec*
                     ((loop_0
                       (|#%name|
                        loop
                        (lambda (prev-val_0 next-index_0)
                          (begin
                            (let ((or-part_0 (unsafe-fx= next-index_0 end_0)))
                              (if or-part_0
                                or-part_0
                                (let ((next-val_0
                                       (unsafe-vector-ref vec_0 next-index_0)))
                                  (if (not
                                       (|#%app|
                                        less-than?_0
                                        next-val_0
                                        prev-val_0))
                                    (loop_0
                                     next-val_0
                                     (unsafe-fx+ next-index_0 1))
                                    #f)))))))))
                     (loop_0
                      (unsafe-vector-ref vec_0 start_0)
                      (unsafe-fx+ start_0 1)))
                  (vector-copy! dst-vec_0 0 vec_0 start_0 end_0)
                  (if (unsafe-fx<= n_0 3)
                    (begin
                      (vector-copy! dst-vec_0 0 vec_0 start_0 end_0)
                      (if (unsafe-fx= n_0 1)
                        (void)
                        (if (unsafe-fx= n_0 2)
                          (let ((tmp_0 (unsafe-vector-ref dst-vec_0 0)))
                            (begin
                              (unsafe-vector-set!
                               dst-vec_0
                               0
                               (unsafe-vector-ref dst-vec_0 1))
                              (unsafe-vector-set! dst-vec_0 1 tmp_0)))
                          (let ((a_0 (unsafe-vector-ref dst-vec_0 0)))
                            (let ((b_0 (unsafe-vector-ref dst-vec_0 1)))
                              (let ((c_0 (unsafe-vector-ref dst-vec_0 2)))
                                (let ((b_1 b_0) (a_1 a_0))
                                  (if (|#%app| less-than?_0 b_1 a_1)
                                    (if (|#%app| less-than?_0 c_0 b_1)
                                      (begin
                                        (unsafe-vector-set! dst-vec_0 0 c_0)
                                        (unsafe-vector-set! dst-vec_0 2 a_1))
                                      (if (|#%app| less-than?_0 c_0 a_1)
                                        (begin
                                          (unsafe-vector-set! dst-vec_0 0 b_1)
                                          (unsafe-vector-set! dst-vec_0 1 c_0)
                                          (unsafe-vector-set! dst-vec_0 2 a_1))
                                        (begin
                                          (unsafe-vector-set! dst-vec_0 0 b_1)
                                          (unsafe-vector-set!
                                           dst-vec_0
                                           1
                                           a_1))))
                                    (if (|#%app| less-than?_0 c_0 a_1)
                                      (begin
                                        (unsafe-vector-set! dst-vec_0 0 c_0)
                                        (unsafe-vector-set! dst-vec_0 1 a_1)
                                        (unsafe-vector-set! dst-vec_0 2 b_1))
                                      (begin
                                        (unsafe-vector-set! dst-vec_0 1 c_0)
                                        (unsafe-vector-set!
                                         dst-vec_0
                                         2
                                         b_1)))))))))))
                    (let ((work-vec_0
                           (make-vector (+ n_0 (ceiling (/ n_0 2))) #f)))
                      (begin
                        (vector-copy! work-vec_0 0 vec_0 start_0 end_0)
                        (generic-sort_0 work-vec_0 less-than?_0 n_0)
                        (vector-copy! dst-vec_0 0 work-vec_0 0 n_0))))))
              dst-vec_0))))
       ((vec_0 less-than?_0 start_0 end_0 getkey_0 cache-keys?_0)
        (if (if getkey_0 (not (eq? values getkey_0)) #f)
          (let ((n_0 (- end_0 start_0)))
            (let ((dst-vec_0 (make-vector n_0)))
              (begin
                (if (unsafe-fx= n_0 0)
                  (void)
                  (if cache-keys?_0
                    (let ((work-vec_0
                           (make-vector (+ n_0 (ceiling (/ n_0 2))) #t)))
                      (begin
                        (letrec*
                         ((loop_0
                           (|#%name|
                            loop
                            (lambda (i_0)
                              (begin
                                (if (unsafe-fx< i_0 n_0)
                                  (begin
                                    (let ((x_0
                                           (unsafe-vector-ref
                                            vec_0
                                            (unsafe-fx+ i_0 start_0))))
                                      (unsafe-vector-set!
                                       work-vec_0
                                       i_0
                                       (cons (|#%app| getkey_0 x_0) x_0)))
                                    (loop_0 (unsafe-fx+ i_0 1)))
                                  (void)))))))
                         (loop_0 0))
                        (generic-sort/key_0
                         work-vec_0
                         less-than?_0
                         n_0
                         unsafe-car)
                        (letrec*
                         ((loop_0
                           (|#%name|
                            loop
                            (lambda (i_0)
                              (begin
                                (if (unsafe-fx< i_0 n_0)
                                  (begin
                                    (unsafe-vector-set!
                                     dst-vec_0
                                     (unsafe-fx+ i_0 0)
                                     (unsafe-cdr
                                      (unsafe-vector-ref work-vec_0 i_0)))
                                    (loop_0 (unsafe-fx+ i_0 1)))
                                  (void)))))))
                         (loop_0 0))))
                    (if (letrec*
                         ((loop_0
                           (|#%name|
                            loop
                            (lambda (prev-val_0 next-index_0)
                              (begin
                                (let ((or-part_0
                                       (unsafe-fx= next-index_0 end_0)))
                                  (if or-part_0
                                    or-part_0
                                    (let ((next-val_0
                                           (unsafe-vector-ref
                                            vec_0
                                            next-index_0)))
                                      (if (not
                                           (if getkey_0
                                             (let ((app_0
                                                    (|#%app|
                                                     getkey_0
                                                     next-val_0)))
                                               (|#%app|
                                                less-than?_0
                                                app_0
                                                (|#%app| getkey_0 prev-val_0)))
                                             (|#%app|
                                              less-than?_0
                                              next-val_0
                                              prev-val_0)))
                                        (loop_0
                                         next-val_0
                                         (unsafe-fx+ next-index_0 1))
                                        #f)))))))))
                         (loop_0
                          (unsafe-vector-ref vec_0 start_0)
                          (unsafe-fx+ start_0 1)))
                      (vector-copy! dst-vec_0 0 vec_0 start_0 end_0)
                      (if (unsafe-fx<= n_0 3)
                        (begin
                          (vector-copy! dst-vec_0 0 vec_0 start_0 end_0)
                          (if (unsafe-fx= n_0 1)
                            (void)
                            (if (unsafe-fx= n_0 2)
                              (let ((tmp_0 (unsafe-vector-ref dst-vec_0 0)))
                                (begin
                                  (unsafe-vector-set!
                                   dst-vec_0
                                   0
                                   (unsafe-vector-ref dst-vec_0 1))
                                  (unsafe-vector-set! dst-vec_0 1 tmp_0)))
                              (let ((a_0 (unsafe-vector-ref dst-vec_0 0)))
                                (let ((b_0 (unsafe-vector-ref dst-vec_0 1)))
                                  (let ((c_0 (unsafe-vector-ref dst-vec_0 2)))
                                    (let ((b_1 b_0) (a_1 a_0))
                                      (if (if getkey_0
                                            (let ((app_0
                                                   (|#%app| getkey_0 b_1)))
                                              (|#%app|
                                               less-than?_0
                                               app_0
                                               (|#%app| getkey_0 a_1)))
                                            (|#%app| less-than?_0 b_1 a_1))
                                        (if (if getkey_0
                                              (let ((app_0
                                                     (|#%app| getkey_0 c_0)))
                                                (|#%app|
                                                 less-than?_0
                                                 app_0
                                                 (|#%app| getkey_0 b_1)))
                                              (|#%app| less-than?_0 c_0 b_1))
                                          (begin
                                            (unsafe-vector-set!
                                             dst-vec_0
                                             0
                                             c_0)
                                            (unsafe-vector-set!
                                             dst-vec_0
                                             2
                                             a_1))
                                          (if (if getkey_0
                                                (let ((app_0
                                                       (|#%app| getkey_0 c_0)))
                                                  (|#%app|
                                                   less-than?_0
                                                   app_0
                                                   (|#%app| getkey_0 a_1)))
                                                (|#%app| less-than?_0 c_0 a_1))
                                            (begin
                                              (unsafe-vector-set!
                                               dst-vec_0
                                               0
                                               b_1)
                                              (unsafe-vector-set!
                                               dst-vec_0
                                               1
                                               c_0)
                                              (unsafe-vector-set!
                                               dst-vec_0
                                               2
                                               a_1))
                                            (begin
                                              (unsafe-vector-set!
                                               dst-vec_0
                                               0
                                               b_1)
                                              (unsafe-vector-set!
                                               dst-vec_0
                                               1
                                               a_1))))
                                        (if (if getkey_0
                                              (let ((app_0
                                                     (|#%app| getkey_0 c_0)))
                                                (|#%app|
                                                 less-than?_0
                                                 app_0
                                                 (|#%app| getkey_0 a_1)))
                                              (|#%app| less-than?_0 c_0 a_1))
                                          (begin
                                            (unsafe-vector-set!
                                             dst-vec_0
                                             0
                                             c_0)
                                            (unsafe-vector-set!
                                             dst-vec_0
                                             1
                                             a_1)
                                            (unsafe-vector-set!
                                             dst-vec_0
                                             2
                                             b_1))
                                          (begin
                                            (unsafe-vector-set!
                                             dst-vec_0
                                             1
                                             c_0)
                                            (unsafe-vector-set!
                                             dst-vec_0
                                             2
                                             b_1)))))))))))
                        (let ((work-vec_0
                               (make-vector (+ n_0 (ceiling (/ n_0 2))) #f)))
                          (begin
                            (vector-copy! work-vec_0 0 vec_0 start_0 end_0)
                            (generic-sort/key_0
                             work-vec_0
                             less-than?_0
                             n_0
                             getkey_0)
                            (vector-copy! dst-vec_0 0 work-vec_0 0 n_0)))))))
                dst-vec_0)))
          (|#%app|
           (check-not-unsafe-undefined vector-sort 'vector-sort)
           vec_0
           less-than?_0
           start_0
           end_0))))
      (case-lambda
       ((vec_0 less-than?_0 start_0 end_0)
        (let ((n_0 (- end_0 start_0)))
          (begin
            (if (unsafe-fx= n_0 0)
              (void)
              (if (letrec*
                   ((loop_0
                     (|#%name|
                      loop
                      (lambda (prev-val_0 next-index_0)
                        (begin
                          (let ((or-part_0 (unsafe-fx= next-index_0 end_0)))
                            (if or-part_0
                              or-part_0
                              (let ((next-val_0
                                     (unsafe-vector-ref vec_0 next-index_0)))
                                (if (not
                                     (|#%app|
                                      less-than?_0
                                      next-val_0
                                      prev-val_0))
                                  (loop_0
                                   next-val_0
                                   (unsafe-fx+ next-index_0 1))
                                  #f)))))))))
                   (loop_0
                    (unsafe-vector-ref vec_0 start_0)
                    (unsafe-fx+ start_0 1)))
                (void)
                (if (unsafe-fx<= n_0 3)
                  (begin
                    (if (unsafe-fx= n_0 1)
                      (void)
                      (if (unsafe-fx= n_0 2)
                        (let ((tmp_0
                               (unsafe-vector-ref
                                vec_0
                                (unsafe-fx+ start_0 0))))
                          (begin
                            (unsafe-vector-set!
                             vec_0
                             (unsafe-fx+ start_0 0)
                             (unsafe-vector-ref vec_0 (unsafe-fx+ start_0 1)))
                            (unsafe-vector-set!
                             vec_0
                             (unsafe-fx+ start_0 1)
                             tmp_0)))
                        (let ((a_0
                               (unsafe-vector-ref
                                vec_0
                                (unsafe-fx+ start_0 0))))
                          (let ((b_0
                                 (unsafe-vector-ref
                                  vec_0
                                  (unsafe-fx+ start_0 1))))
                            (let ((c_0
                                   (unsafe-vector-ref
                                    vec_0
                                    (unsafe-fx+ start_0 2))))
                              (let ((b_1 b_0) (a_1 a_0))
                                (if (|#%app| less-than?_0 b_1 a_1)
                                  (if (|#%app| less-than?_0 c_0 b_1)
                                    (begin
                                      (unsafe-vector-set!
                                       vec_0
                                       (unsafe-fx+ start_0 0)
                                       c_0)
                                      (unsafe-vector-set!
                                       vec_0
                                       (unsafe-fx+ start_0 2)
                                       a_1))
                                    (if (|#%app| less-than?_0 c_0 a_1)
                                      (begin
                                        (unsafe-vector-set!
                                         vec_0
                                         (unsafe-fx+ start_0 0)
                                         b_1)
                                        (unsafe-vector-set!
                                         vec_0
                                         (unsafe-fx+ start_0 1)
                                         c_0)
                                        (unsafe-vector-set!
                                         vec_0
                                         (unsafe-fx+ start_0 2)
                                         a_1))
                                      (begin
                                        (unsafe-vector-set!
                                         vec_0
                                         (unsafe-fx+ start_0 0)
                                         b_1)
                                        (unsafe-vector-set!
                                         vec_0
                                         (unsafe-fx+ start_0 1)
                                         a_1))))
                                  (if (|#%app| less-than?_0 c_0 a_1)
                                    (begin
                                      (unsafe-vector-set!
                                       vec_0
                                       (unsafe-fx+ start_0 0)
                                       c_0)
                                      (unsafe-vector-set!
                                       vec_0
                                       (unsafe-fx+ start_0 1)
                                       a_1)
                                      (unsafe-vector-set!
                                       vec_0
                                       (unsafe-fx+ start_0 2)
                                       b_1))
                                    (begin
                                      (unsafe-vector-set!
                                       vec_0
                                       (unsafe-fx+ start_0 1)
                                       c_0)
                                      (unsafe-vector-set!
                                       vec_0
                                       (unsafe-fx+ start_0 2)
                                       b_1)))))))))))
                  (let ((work-vec_0
                         (make-vector (+ n_0 (ceiling (/ n_0 2))) #f)))
                    (begin
                      (vector-copy! work-vec_0 0 vec_0 start_0 end_0)
                      (generic-sort_0 work-vec_0 less-than?_0 n_0)
                      (vector-copy! vec_0 start_0 work-vec_0 0 n_0))))))
            (void))))
       ((vec_0 less-than?_0 start_0 end_0 getkey_0 cache-keys?_0)
        (if (if getkey_0 (not (eq? values getkey_0)) #f)
          (let ((n_0 (- end_0 start_0)))
            (begin
              (if (unsafe-fx= n_0 0)
                (void)
                (if cache-keys?_0
                  (let ((work-vec_0
                         (make-vector (+ n_0 (ceiling (/ n_0 2))) #t)))
                    (begin
                      (letrec*
                       ((loop_0
                         (|#%name|
                          loop
                          (lambda (i_0)
                            (begin
                              (if (unsafe-fx< i_0 n_0)
                                (begin
                                  (let ((x_0
                                         (unsafe-vector-ref
                                          vec_0
                                          (unsafe-fx+ i_0 start_0))))
                                    (unsafe-vector-set!
                                     work-vec_0
                                     i_0
                                     (cons (|#%app| getkey_0 x_0) x_0)))
                                  (loop_0 (unsafe-fx+ i_0 1)))
                                (void)))))))
                       (loop_0 0))
                      (generic-sort/key_0
                       work-vec_0
                       less-than?_0
                       n_0
                       unsafe-car)
                      (letrec*
                       ((loop_0
                         (|#%name|
                          loop
                          (lambda (i_0)
                            (begin
                              (if (unsafe-fx< i_0 n_0)
                                (begin
                                  (unsafe-vector-set!
                                   vec_0
                                   (unsafe-fx+ i_0 start_0)
                                   (unsafe-cdr
                                    (unsafe-vector-ref work-vec_0 i_0)))
                                  (loop_0 (unsafe-fx+ i_0 1)))
                                (void)))))))
                       (loop_0 0))))
                  (if (letrec*
                       ((loop_0
                         (|#%name|
                          loop
                          (lambda (prev-val_0 next-index_0)
                            (begin
                              (let ((or-part_0
                                     (unsafe-fx= next-index_0 end_0)))
                                (if or-part_0
                                  or-part_0
                                  (let ((next-val_0
                                         (unsafe-vector-ref
                                          vec_0
                                          next-index_0)))
                                    (if (not
                                         (if getkey_0
                                           (let ((app_0
                                                  (|#%app|
                                                   getkey_0
                                                   next-val_0)))
                                             (|#%app|
                                              less-than?_0
                                              app_0
                                              (|#%app| getkey_0 prev-val_0)))
                                           (|#%app|
                                            less-than?_0
                                            next-val_0
                                            prev-val_0)))
                                      (loop_0
                                       next-val_0
                                       (unsafe-fx+ next-index_0 1))
                                      #f)))))))))
                       (loop_0
                        (unsafe-vector-ref vec_0 start_0)
                        (unsafe-fx+ start_0 1)))
                    (void)
                    (if (unsafe-fx<= n_0 3)
                      (begin
                        (if (unsafe-fx= n_0 1)
                          (void)
                          (if (unsafe-fx= n_0 2)
                            (let ((tmp_0
                                   (unsafe-vector-ref
                                    vec_0
                                    (unsafe-fx+ start_0 0))))
                              (begin
                                (unsafe-vector-set!
                                 vec_0
                                 (unsafe-fx+ start_0 0)
                                 (unsafe-vector-ref
                                  vec_0
                                  (unsafe-fx+ start_0 1)))
                                (unsafe-vector-set!
                                 vec_0
                                 (unsafe-fx+ start_0 1)
                                 tmp_0)))
                            (let ((a_0
                                   (unsafe-vector-ref
                                    vec_0
                                    (unsafe-fx+ start_0 0))))
                              (let ((b_0
                                     (unsafe-vector-ref
                                      vec_0
                                      (unsafe-fx+ start_0 1))))
                                (let ((c_0
                                       (unsafe-vector-ref
                                        vec_0
                                        (unsafe-fx+ start_0 2))))
                                  (let ((b_1 b_0) (a_1 a_0))
                                    (if (if getkey_0
                                          (let ((app_0 (|#%app| getkey_0 b_1)))
                                            (|#%app|
                                             less-than?_0
                                             app_0
                                             (|#%app| getkey_0 a_1)))
                                          (|#%app| less-than?_0 b_1 a_1))
                                      (if (if getkey_0
                                            (let ((app_0
                                                   (|#%app| getkey_0 c_0)))
                                              (|#%app|
                                               less-than?_0
                                               app_0
                                               (|#%app| getkey_0 b_1)))
                                            (|#%app| less-than?_0 c_0 b_1))
                                        (begin
                                          (unsafe-vector-set!
                                           vec_0
                                           (unsafe-fx+ start_0 0)
                                           c_0)
                                          (unsafe-vector-set!
                                           vec_0
                                           (unsafe-fx+ start_0 2)
                                           a_1))
                                        (if (if getkey_0
                                              (let ((app_0
                                                     (|#%app| getkey_0 c_0)))
                                                (|#%app|
                                                 less-than?_0
                                                 app_0
                                                 (|#%app| getkey_0 a_1)))
                                              (|#%app| less-than?_0 c_0 a_1))
                                          (begin
                                            (unsafe-vector-set!
                                             vec_0
                                             (unsafe-fx+ start_0 0)
                                             b_1)
                                            (unsafe-vector-set!
                                             vec_0
                                             (unsafe-fx+ start_0 1)
                                             c_0)
                                            (unsafe-vector-set!
                                             vec_0
                                             (unsafe-fx+ start_0 2)
                                             a_1))
                                          (begin
                                            (unsafe-vector-set!
                                             vec_0
                                             (unsafe-fx+ start_0 0)
                                             b_1)
                                            (unsafe-vector-set!
                                             vec_0
                                             (unsafe-fx+ start_0 1)
                                             a_1))))
                                      (if (if getkey_0
                                            (let ((app_0
                                                   (|#%app| getkey_0 c_0)))
                                              (|#%app|
                                               less-than?_0
                                               app_0
                                               (|#%app| getkey_0 a_1)))
                                            (|#%app| less-than?_0 c_0 a_1))
                                        (begin
                                          (unsafe-vector-set!
                                           vec_0
                                           (unsafe-fx+ start_0 0)
                                           c_0)
                                          (unsafe-vector-set!
                                           vec_0
                                           (unsafe-fx+ start_0 1)
                                           a_1)
                                          (unsafe-vector-set!
                                           vec_0
                                           (unsafe-fx+ start_0 2)
                                           b_1))
                                        (begin
                                          (unsafe-vector-set!
                                           vec_0
                                           (unsafe-fx+ start_0 1)
                                           c_0)
                                          (unsafe-vector-set!
                                           vec_0
                                           (unsafe-fx+ start_0 2)
                                           b_1)))))))))))
                      (let ((work-vec_0
                             (make-vector (+ n_0 (ceiling (/ n_0 2))) #f)))
                        (begin
                          (vector-copy! work-vec_0 0 vec_0 start_0 end_0)
                          (generic-sort/key_0
                           work-vec_0
                           less-than?_0
                           n_0
                           getkey_0)
                          (vector-copy! vec_0 start_0 work-vec_0 0 n_0)))))))
              (void)))
          (|#%app|
           (check-not-unsafe-undefined vector-sort! 'vector-sort!)
           vec_0
           less-than?_0
           start_0
           end_0))))))))
(define-values
 (prop:stream stream-via-prop? stream-ref)
 (make-struct-type-property
  'stream
  (lambda (v_0 si_0)
    (begin
      (if (if (vector? v_0)
            (if (= 3 (vector-length v_0))
              (if (procedure? (vector-ref v_0 0))
                (if (procedure-arity-includes? (vector-ref v_0 0) 1)
                  (if (procedure? (vector-ref v_0 1))
                    (if (procedure-arity-includes? (vector-ref v_0 1) 1)
                      (if (procedure? (vector-ref v_0 2))
                        (procedure-arity-includes? (vector-ref v_0 2) 1)
                        #f)
                      #f)
                    #f)
                  #f)
                #f)
              #f)
            #f)
        (void)
        (raise-argument-error
         'guard-for-prop:stream
         (string-append
          "(vector/c (procedure-arity-includes/c 1)\n"
          "          (procedure-arity-includes/c 1)\n"
          "          (procedure-arity-includes/c 1))")
         v_0))
      (vector->immutable-vector v_0)))
  '()
  #t))
(define-values
 (prop:gen-sequence sequence-via-prop? sequence-ref)
 (make-struct-type-property
  'sequence
  (lambda (v_0 si_0)
    (begin
      (if (if (procedure? v_0) (procedure-arity-includes? v_0 1) #f)
        (void)
        (raise-argument-error
         'guard-for-prop:sequence
         "(procedure-arity-includes/c 1)"
         v_0))
      v_0))))
(define-values
 (struct:range make-range range? range-ref range-set!)
 (make-struct-type
  'stream
  #f
  3
  0
  #f
  (list
   (cons
    prop:stream
    (vector
     (lambda (v_0)
       (let ((cont?_0
              (|#%app|
               (check-not-unsafe-undefined range-ref 'range-ref)
               v_0
               2)))
         (if cont?_0
           (not
            (|#%app|
             cont?_0
             (|#%app|
              (check-not-unsafe-undefined range-ref 'range-ref)
              v_0
              0)))
           #f)))
     (lambda (v_0)
       (|#%app| (check-not-unsafe-undefined range-ref 'range-ref) v_0 0))
     (lambda (v_0)
       (let ((app_0 make-range))
         (let ((app_1
                (let ((app_1
                       (|#%app|
                        (check-not-unsafe-undefined range-ref 'range-ref)
                        v_0
                        1)))
                  (|#%app|
                   app_1
                   (|#%app|
                    (check-not-unsafe-undefined range-ref 'range-ref)
                    v_0
                    0)))))
           (let ((app_2
                  (|#%app|
                   (check-not-unsafe-undefined range-ref 'range-ref)
                   v_0
                   1)))
             (|#%app|
              app_0
              app_1
              app_2
              (|#%app|
               (check-not-unsafe-undefined range-ref 'range-ref)
               v_0
               2))))))))
   (cons
    prop:gen-sequence
    (lambda (v_0)
      (let ((app_0
             (|#%app|
              (check-not-unsafe-undefined range-ref 'range-ref)
              v_0
              1)))
        (let ((app_1
               (|#%app|
                (check-not-unsafe-undefined range-ref 'range-ref)
                v_0
                0)))
          (values
           values
           #f
           app_0
           app_1
           (|#%app| (check-not-unsafe-undefined range-ref 'range-ref) v_0 2)
           #f
           #f))))))))
(define check-range
  (lambda (a_0 b_0 step_0)
    (begin
      (if (real? a_0) (void) (raise-argument-error 'in-range "real?" a_0))
      (if (real? b_0) (void) (raise-argument-error 'in-range "real?" b_0))
      (if (real? step_0)
        (void)
        (raise-argument-error 'in-range "real?" step_0)))))
(define check-naturals
  (lambda (n_0)
    (if (if (integer? n_0) (if (exact? n_0) (>= n_0 0) #f) #f)
      (void)
      (raise-argument-error 'in-naturals "exact-nonnegative-integer?" n_0))))
(define-values
 (struct:list-stream
  make-list-stream
  list-stream?
  list-stream-ref
  list-stream-set!)
 (make-struct-type
  'stream
  #f
  1
  0
  #f
  (list
   (cons
    prop:stream
    (vector
     (lambda (v_0)
       (not
        (pair?
         (|#%app|
          (check-not-unsafe-undefined list-stream-ref 'list-stream-ref)
          v_0
          0))))
     (lambda (v_0)
       (car
        (|#%app|
         (check-not-unsafe-undefined list-stream-ref 'list-stream-ref)
         v_0
         0)))
     (lambda (v_0)
       (let ((app_0 make-list-stream))
         (|#%app|
          app_0
          (cdr
           (|#%app|
            (check-not-unsafe-undefined list-stream-ref 'list-stream-ref)
            v_0
            0)))))))
   (cons
    prop:gen-sequence
    (lambda (v_0)
      (values
       car
       cdr
       values
       (|#%app|
        (check-not-unsafe-undefined list-stream-ref 'list-stream-ref)
        v_0
        0)
       pair?
       #f
       #f))))))
(define check-list
  (lambda (l_0)
    (if (list? l_0) (void) (raise-argument-error 'in-list "list?" l_0))))
(define check-in-hash
  (lambda (ht_0)
    (if (hash? ht_0) (void) (raise-argument-error 'in-hash "hash?" ht_0))))
(define check-in-hash-keys
  (lambda (ht_0)
    (if (hash? ht_0)
      (void)
      (raise-argument-error 'in-hash-keys "hash?" ht_0))))
(define check-in-hash-values
  (lambda (ht_0)
    (if (hash? ht_0)
      (void)
      (raise-argument-error 'in-hash-values "hash?" ht_0))))
(define check-ranges
  (lambda (who_0 vec_0 start_0 stop_0 step_0 len_0)
    (begin
      (if (if (exact-nonnegative-integer? start_0)
            (let ((or-part_0 (< start_0 len_0)))
              (if or-part_0 or-part_0 (= len_0 start_0 stop_0)))
            #f)
        (void)
        (raise-range-error
         who_0
         "vector"
         "starting "
         start_0
         vec_0
         0
         (sub1 len_0)))
      (if (if (exact-integer? stop_0)
            (if (<= -1 stop_0) (<= stop_0 len_0) #f)
            #f)
        (void)
        (raise-range-error who_0 "vector" "stopping " stop_0 vec_0 -1 len_0))
      (if (if (exact-integer? step_0) (not (zero? step_0)) #f)
        (void)
        (raise-argument-error
         who_0
         "(and/c exact-integer? (not/c zero?))"
         step_0))
      (if (if (< start_0 stop_0) (< step_0 0) #f)
        (raise-arguments-error
         who_0
         "starting index less than stopping index, but given a negative step"
         "starting index"
         start_0
         "stopping index"
         stop_0
         "step"
         step_0)
        (void))
      (if (if (< stop_0 start_0) (> step_0 0) #f)
        (raise-arguments-error
         who_0
         "starting index more than stopping index, but given a positive step"
         "starting index"
         start_0
         "stopping index"
         stop_0
         "step"
         step_0)
        (void)))))
(define normalise-inputs
  (lambda (who_0
           type-name_0
           vector?_0
           unsafe-vector-length_0
           vec_0
           start_0
           stop_0
           step_0)
    (begin
      (if (|#%app| vector?_0 vec_0)
        (void)
        (raise-argument-error who_0 type-name_0 vec_0))
      (let ((len_0 (|#%app| unsafe-vector-length_0 vec_0)))
        (let ((stop*_0 (if stop_0 stop_0 len_0)))
          (begin
            (check-ranges who_0 vec_0 start_0 stop*_0 step_0 len_0)
            (values vec_0 start_0 stop*_0 step_0)))))))
(define check-vector
  (lambda (v_0)
    (if (vector? v_0) (void) (raise-argument-error 'in-vector "vector" v_0))))
(define-values
 (struct:do-stream make-do-stream do-stream? do-stream-ref do-stream-set!)
 (make-struct-type
  'stream
  #f
  3
  0
  #f
  (list
   (cons
    prop:stream
    (vector
     (lambda (v_0)
       (|#%app|
        (|#%app|
         (check-not-unsafe-undefined do-stream-ref 'do-stream-ref)
         v_0
         0)))
     (lambda (v_0)
       (|#%app|
        (|#%app|
         (check-not-unsafe-undefined do-stream-ref 'do-stream-ref)
         v_0
         1)))
     (lambda (v_0)
       (|#%app|
        (|#%app|
         (check-not-unsafe-undefined do-stream-ref 'do-stream-ref)
         v_0
         2))))))))
(define empty-stream (make-do-stream (lambda () #t) void void))
(define map2
  (|#%name|
   map
   (letrec ((loop_0
             (|#%name|
              loop
              (lambda (f_0 l1_0 l2_0)
                (begin
                  (if (null? l1_0)
                    null
                    (let ((r1_0 (cdr l1_0)))
                      (let ((r2_0 (cdr l2_0)))
                        (let ((r1_1 r1_0))
                          (let ((app_0
                                 (let ((app_0 (car l1_0)))
                                   (|#%app| f_0 app_0 (car l2_0)))))
                            (cons app_0 (loop_0 f_0 r1_1 r2_0)))))))))))
            (loop_1
             (|#%name|
              loop
              (lambda (f_0 l_0)
                (begin
                  (if (null? l_0)
                    null
                    (let ((r_0 (cdr l_0)))
                      (let ((app_0 (|#%app| f_0 (car l_0))))
                        (cons app_0 (loop_1 f_0 r_0))))))))))
     (case-lambda
      ((f_0 l_0) (begin (loop_1 f_0 l_0)))
      ((f_0 l1_0 l2_0) (loop_0 f_0 l1_0 l2_0))
      ((f_0 l_0 . args_0) (gen-map f_0 (cons l_0 args_0)))))))
(define andmap2
  (|#%name|
   andmap
   (case-lambda
    ((f_0 l_0)
     (begin
       (if (null? l_0)
         #t
         (letrec*
          ((loop_0
            (|#%name|
             loop
             (lambda (l_1)
               (begin
                 (if (null? (cdr l_1))
                   (|#%app| f_0 (car l_1))
                   (let ((r_0 (cdr l_1)))
                     (if (|#%app| f_0 (car l_1)) (loop_0 r_0) #f))))))))
          (loop_0 l_0)))))
    ((f_0 l1_0 l2_0)
     (if (null? l1_0)
       #t
       (letrec*
        ((loop_0
          (|#%name|
           loop
           (lambda (l1_1 l2_1)
             (begin
               (if (null? (cdr l1_1))
                 (let ((app_0 (car l1_1))) (|#%app| f_0 app_0 (car l2_1)))
                 (let ((r1_0 (cdr l1_1)))
                   (let ((r2_0 (cdr l2_1)))
                     (let ((r1_1 r1_0))
                       (if (let ((app_0 (car l1_1)))
                             (|#%app| f_0 app_0 (car l2_1)))
                         (loop_0 r1_1 r2_0)
                         #f))))))))))
        (loop_0 l1_0 l2_0))))
    ((f_0 l_0 . args_0) (gen-andmap f_0 (cons l_0 args_0))))))
(define check-args
  (letrec ((loop_0
            (|#%name|
             loop
             (lambda (kws_0)
               (begin
                 (if (null? kws_0)
                   null
                   (let ((app_0
                          (string-append "#:" (keyword->string (car kws_0)))))
                     (list* " " app_0 (loop_0 (cdr kws_0)))))))))
           (loop_1
            (|#%name|
             loop
             (lambda (w_0 ls_0)
               (begin
                 (if (null? ls_0)
                   null
                   (let ((app_0
                          (string-append
                           "\n   "
                           (let ((app_0 (error-value->string-handler)))
                             (|#%app| app_0 (car ls_0) w_0)))))
                     (cons app_0 (loop_1 w_0 (cdr ls_0))))))))))
    (lambda (who_0 f_0 ls_0)
      (begin
        (if (procedure? f_0)
          (void)
          (raise-argument-error who_0 "procedure?" f_0))
        (letrec*
         ((loop_2
           (|#%name|
            loop
            (lambda (prev-len_0 ls_1 i_0)
              (begin
                (if (null? ls_1)
                  (void)
                  (let ((l_0 (car ls_1)))
                    (begin
                      (if (list? l_0)
                        (void)
                        (raise-argument-error who_0 "list?" l_0))
                      (let ((len_0 (length l_0)))
                        (begin
                          (if (if prev-len_0 (not (= len_0 prev-len_0)) #f)
                            (raise-arguments-error
                             who_0
                             "all lists must have same size"
                             "first list length"
                             prev-len_0
                             "other list length"
                             len_0
                             "procedure"
                             f_0)
                            (void))
                          (let ((app_0 (cdr ls_1)))
                            (loop_2 len_0 app_0 (add1 i_0)))))))))))))
         (loop_2 #f ls_0 1))
        (if (procedure-arity-includes? f_0 (length ls_0))
          (void)
          (call-with-values
           (lambda () (procedure-keywords f_0))
           (case-lambda
            ((required-keywords_0 optional-keywords_0)
             (let ((app_0
                    (if (pair? required-keywords_0)
                      (string-append
                       "argument mismatch;\n"
                       " the given procedure expects keyword arguments")
                      (string-append
                       "argument mismatch;\n"
                       " the given procedure's expected number of arguments does not match"
                       " the given number of lists"))))
               (let ((app_1
                      (unquoted-printing-string
                       (let ((or-part_0
                              (let ((n_0 (object-name f_0)))
                                (if (symbol? n_0) (symbol->string n_0) #f))))
                         (if or-part_0 or-part_0 "#<procedure>")))))
                 (apply
                  raise-arguments-error
                  who_0
                  app_0
                  "given procedure"
                  app_1
                  (let ((app_2
                         (let ((a_0 (procedure-arity f_0)))
                           (if (pair? required-keywords_0)
                             null
                             (if (integer? a_0)
                               (list "expected" a_0)
                               (if (arity-at-least? a_0)
                                 (list
                                  "expected"
                                  (unquoted-printing-string
                                   (string-append
                                    "at least "
                                    (number->string
                                     (arity-at-least-value a_0)))))
                                 null))))))
                    (let ((app_3
                           (if (pair? required-keywords_0)
                             null
                             (list "given" (length ls_0)))))
                      (let ((app_4
                             (if (pair? required-keywords_0)
                               (list
                                "required keywords"
                                (unquoted-printing-string
                                 (apply
                                  string-append
                                  (cdr (loop_0 required-keywords_0)))))
                               null)))
                        (append
                         app_2
                         app_3
                         app_4
                         (let ((w_0
                                (let ((app_5 (error-print-width)))
                                  (quotient app_5 (length ls_0)))))
                           (if (> w_0 10)
                             (list
                              "argument lists..."
                              (unquoted-printing-string
                               (apply string-append (loop_1 w_0 ls_0))))
                             null))))))))))
            (args (raise-binding-result-arity-error 2 args)))))))))
(define gen-map
  (letrec ((loop_0
            (|#%name|
             loop
             (lambda (f_0 ls_0)
               (begin
                 (if (null? (car ls_0))
                   null
                   (let ((next-ls_0 (map2 cdr ls_0)))
                     (let ((app_0 (apply f_0 (map2 car ls_0))))
                       (cons app_0 (loop_0 f_0 next-ls_0))))))))))
    (lambda (f_0 ls_0) (begin #t (loop_0 f_0 ls_0)))))
(define gen-andmap
  (lambda (f_0 ls_0)
    (begin
      #t
      (letrec*
       ((loop_0
         (|#%name|
          loop
          (lambda (ls_1)
            (begin
              (if (null? (car ls_1))
                #t
                (if (null? (cdar ls_1))
                  (apply f_0 (map2 car ls_1))
                  (let ((next-ls_0 (map2 cdr ls_1)))
                    (if (apply f_0 (map2 car ls_1))
                      (loop_0 next-ls_0)
                      #f)))))))))
       (loop_0 ls_0)))))
(define hash-keys
  (letrec ((loop_0
            (|#%name|
             loop
             (lambda (h_0 pos_0)
               (begin
                 (if pos_0
                   (let ((app_0 (hash-iterate-key h_0 pos_0)))
                     (cons app_0 (loop_0 h_0 (hash-iterate-next h_0 pos_0))))
                   null))))))
    (lambda (h_0) (loop_0 h_0 (hash-iterate-first h_0)))))
(define hash-values
  (letrec ((procz1 (lambda (k_0 v_0) v_0)))
    (lambda (table_0)
      (begin
        (if (hash? table_0)
          (void)
          (raise-argument-error 'hash-values "hash?" table_0))
        (hash-map table_0 procz1)))))
(define hash-empty?
  (lambda (table_0)
    (begin
      (if (hash? table_0)
        (void)
        (raise-argument-error 'hash-empty? "hash?" table_0))
      (zero? (hash-count table_0)))))
(define sort.1
  (|#%name|
   sort
   (lambda (cache-keys?2_0 key1_0 lst5_0 less?6_0)
     (begin
       (begin
         (if (list? lst5_0) (void) (raise-argument-error 'sort "list?" lst5_0))
         (if (if (procedure? less?6_0)
               (procedure-arity-includes? less?6_0 2)
               #f)
           (void)
           (raise-argument-error 'sort "(any/c any/c . -> . any/c)" less?6_0))
         (if (if key1_0
               (not
                (if (procedure? key1_0)
                  (procedure-arity-includes? key1_0 1)
                  #f))
               #f)
           (raise-argument-error 'sort "(any/c . -> . any/c)" key1_0)
           (void))
         (if key1_0
           (|#%app|
            (check-not-unsafe-undefined sort 'sort)
            lst5_0
            less?6_0
            key1_0
            cache-keys?2_0)
           (|#%app|
            (check-not-unsafe-undefined sort 'sort)
            lst5_0
            less?6_0)))))))
(define correlated?$1 syntax?)
(define correlated-e$1 syntax-e)
(define correlated-property$1 syntax-property)
(define datum->correlated$1 datum->syntax)
(define correlated-source$1 syntax-source)
(define correlated-line$1 syntax-line)
(define correlated-column$1 syntax-column)
(define correlated-position$1 syntax-position)
(define correlated-span$1 syntax-span)
(define unwrap (lambda (v_0) (if (syntax? v_0) (syntax-e v_0) v_0)))
(define wrap? (lambda (v_0) (syntax? v_0)))
(define unwrap-list
  (lambda (v_0)
    (if (null? v_0)
      null
      (if (pair? v_0)
        (let ((r_0 (unwrap-list (cdr v_0))))
          (if (eq? r_0 (cdr v_0)) v_0 (cons (car v_0) r_0)))
        (if (syntax? v_0) (unwrap-list (syntax-e v_0)) v_0)))))
(define wrap-car
  (lambda (v_0) (if (syntax? v_0) (car (syntax-e v_0)) (car v_0))))
(define wrap-cdr
  (lambda (v_0) (if (syntax? v_0) (cdr (syntax-e v_0)) (cdr v_0))))
(define wrap-pair? (lambda (v_0) (pair? (unwrap v_0))))
(define wrap-null? (lambda (v_0) (null? (unwrap v_0))))
(define wrap-list?
  (lambda (v_0)
    (if (null? v_0)
      #t
      (if (syntax? v_0)
        (wrap-list? (syntax-e v_0))
        (if (pair? v_0) (wrap-list? (cdr v_0)) #f)))))
(define wrap-eq?
  (lambda (a_0 b_0) (let ((app_0 (unwrap a_0))) (eq? app_0 (unwrap b_0)))))
(define wrap-equal?
  (lambda (a_0 b_0)
    (let ((b_1 (unwrap b_0)))
      (let ((or-part_0 (if (not (pair? a_0)) (equal? a_0 b_1) #f)))
        (if or-part_0
          or-part_0
          (if (pair? a_0)
            (if (pair? b_1)
              (if (let ((app_0 (car a_0))) (wrap-equal? app_0 (car b_1)))
                (let ((app_0 (car a_0))) (wrap-equal? app_0 (car b_1)))
                #f)
              #f)
            #f))))))
(define wrap-property
  (lambda (a_0 key_0) (if (syntax? a_0) (syntax-property a_0 key_0) #f)))
(define wrap-property-set
  (lambda (a_0 key_0 val_0)
    (let ((a_1 (if (syntax? a_0) a_0 (datum->syntax #f a_0 #f #f))))
      (syntax-property a_1 key_0 val_0))))
(define wrap-source
  (lambda (a_0)
    (if (syntax? a_0)
      (let ((app_0 (syntax-source a_0)))
        (let ((app_1 (syntax-line a_0)))
          (let ((app_2 (syntax-column a_0)))
            (let ((app_3 (syntax-position a_0)))
              (values app_0 app_1 app_2 app_3 (syntax-span a_0))))))
      (values #f #f #f #f #f))))
(define reannotate
  (lambda (old-term_0 new-term_0)
    (if (syntax? old-term_0)
      (datum->syntax #f new-term_0 old-term_0 old-term_0)
      new-term_0)))
(define reannotate/new-srcloc
  (lambda (old-term_0 new-term_0 new-srcloc_0)
    (datum->syntax #f new-term_0 new-srcloc_0 old-term_0)))
(define struct:known-constant
  (make-record-type-descriptor*
   'known-constant
   #f
   (structure-type-lookup-prefab-uid 'known-constant #f 0 0 #f '())
   #f
   #f
   0
   0))
(define effect303
  (struct-type-install-properties!
   struct:known-constant
   'known-constant
   0
   0
   #f
   null
   'prefab
   #f
   '()
   #f
   'known-constant))
(define known-constant
  (|#%name|
   known-constant
   (record-constructor
    (make-record-constructor-descriptor struct:known-constant #f #f))))
(define known-constant?302
  (|#%name| known-constant? (record-predicate struct:known-constant)))
(define known-constant?
  (|#%name|
   known-constant?
   (lambda (v)
     (if (known-constant?302 v)
       #t
       ($value
        (if (impersonator? v)
          (known-constant?302 (impersonator-val v))
          #f))))))
(define effect304
  (begin
    (register-struct-constructor! known-constant)
    (register-struct-predicate! known-constant?)
    (void)))
(define struct:known-consistent
  (make-record-type-descriptor*
   'known-consistent
   (if (struct-type? struct:known-constant)
     struct:known-constant
     (check-struct-type 'struct struct:known-constant))
   (structure-type-lookup-prefab-uid
    'known-consistent
    (if (struct-type? struct:known-constant)
      struct:known-constant
      (check-struct-type 'struct struct:known-constant))
    0
    0
    #f
    '())
   #f
   #f
   0
   0))
(define effect306
  (struct-type-install-properties!
   struct:known-consistent
   'known-consistent
   0
   0
   (if (struct-type? struct:known-constant)
     struct:known-constant
     (check-struct-type 'struct struct:known-constant))
   null
   'prefab
   #f
   '()
   #f
   'known-consistent))
(define known-consistent
  (|#%name|
   known-consistent
   (record-constructor
    (make-record-constructor-descriptor struct:known-consistent #f #f))))
(define known-consistent?305
  (|#%name| known-consistent? (record-predicate struct:known-consistent)))
(define known-consistent?
  (|#%name|
   known-consistent?
   (lambda (v)
     (if (known-consistent?305 v)
       #t
       ($value
        (if (impersonator? v)
          (known-consistent?305 (impersonator-val v))
          #f))))))
(define effect307
  (begin
    (register-struct-constructor! known-consistent)
    (register-struct-predicate! known-consistent?)
    (void)))
(define struct:known-authentic
  (make-record-type-descriptor*
   'known-authentic
   (if (struct-type? struct:known-constant)
     struct:known-constant
     (check-struct-type 'struct struct:known-constant))
   (structure-type-lookup-prefab-uid
    'known-authentic
    (if (struct-type? struct:known-constant)
      struct:known-constant
      (check-struct-type 'struct struct:known-constant))
    0
    0
    #f
    '())
   #f
   #f
   0
   0))
(define effect309
  (struct-type-install-properties!
   struct:known-authentic
   'known-authentic
   0
   0
   (if (struct-type? struct:known-constant)
     struct:known-constant
     (check-struct-type 'struct struct:known-constant))
   null
   'prefab
   #f
   '()
   #f
   'known-authentic))
(define known-authentic
  (|#%name|
   known-authentic
   (record-constructor
    (make-record-constructor-descriptor struct:known-authentic #f #f))))
(define known-authentic?308
  (|#%name| known-authentic? (record-predicate struct:known-authentic)))
(define known-authentic?
  (|#%name|
   known-authentic?
   (lambda (v)
     (if (known-authentic?308 v)
       #t
       ($value
        (if (impersonator? v)
          (known-authentic?308 (impersonator-val v))
          #f))))))
(define effect310
  (begin
    (register-struct-constructor! known-authentic)
    (register-struct-predicate! known-authentic?)
    (void)))
(define struct:known-copy
  (make-record-type-descriptor*
   'known-copy
   (if (struct-type? struct:known-constant)
     struct:known-constant
     (check-struct-type 'struct struct:known-constant))
   (structure-type-lookup-prefab-uid
    'known-copy
    (if (struct-type? struct:known-constant)
      struct:known-constant
      (check-struct-type 'struct struct:known-constant))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect312
  (struct-type-install-properties!
   struct:known-copy
   'known-copy
   1
   0
   (if (struct-type? struct:known-constant)
     struct:known-constant
     (check-struct-type 'struct struct:known-constant))
   null
   'prefab
   #f
   '(0)
   #f
   'known-copy))
(define known-copy
  (|#%name|
   known-copy
   (record-constructor
    (make-record-constructor-descriptor struct:known-copy #f #f))))
(define known-copy?311
  (|#%name| known-copy? (record-predicate struct:known-copy)))
(define known-copy?
  (|#%name|
   known-copy?
   (lambda (v)
     (if (known-copy?311 v)
       #t
       ($value
        (if (impersonator? v) (known-copy?311 (impersonator-val v)) #f))))))
(define known-copy-id313
  (|#%name| known-copy-id (record-accessor struct:known-copy 0)))
(define known-copy-id
  (|#%name|
   known-copy-id
   (lambda (s)
     (if (known-copy?311 s)
       (known-copy-id313 s)
       ($value
        (impersonate-ref
         known-copy-id313
         struct:known-copy
         0
         s
         'known-copy
         'id))))))
(define effect314
  (begin
    (register-struct-constructor! known-copy)
    (register-struct-predicate! known-copy?)
    (register-struct-field-accessor! known-copy-id struct:known-copy 0)
    (void)))
(define struct:known-literal
  (make-record-type-descriptor*
   'known-literal
   (if (struct-type? struct:known-consistent)
     struct:known-consistent
     (check-struct-type 'struct struct:known-consistent))
   (structure-type-lookup-prefab-uid
    'known-literal
    (if (struct-type? struct:known-consistent)
      struct:known-consistent
      (check-struct-type 'struct struct:known-consistent))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect316
  (struct-type-install-properties!
   struct:known-literal
   'known-literal
   1
   0
   (if (struct-type? struct:known-consistent)
     struct:known-consistent
     (check-struct-type 'struct struct:known-consistent))
   null
   'prefab
   #f
   '(0)
   #f
   'known-literal))
(define known-literal
  (|#%name|
   known-literal
   (record-constructor
    (make-record-constructor-descriptor struct:known-literal #f #f))))
(define known-literal?315
  (|#%name| known-literal? (record-predicate struct:known-literal)))
(define known-literal?
  (|#%name|
   known-literal?
   (lambda (v)
     (if (known-literal?315 v)
       #t
       ($value
        (if (impersonator? v) (known-literal?315 (impersonator-val v)) #f))))))
(define known-literal-value317
  (|#%name| known-literal-value (record-accessor struct:known-literal 0)))
(define known-literal-value
  (|#%name|
   known-literal-value
   (lambda (s)
     (if (known-literal?315 s)
       (known-literal-value317 s)
       ($value
        (impersonate-ref
         known-literal-value317
         struct:known-literal
         0
         s
         'known-literal
         'value))))))
(define effect318
  (begin
    (register-struct-constructor! known-literal)
    (register-struct-predicate! known-literal?)
    (register-struct-field-accessor!
     known-literal-value
     struct:known-literal
     0)
    (void)))
(define struct:known-procedure
  (make-record-type-descriptor*
   'known-procedure
   (if (struct-type? struct:known-consistent)
     struct:known-consistent
     (check-struct-type 'struct struct:known-consistent))
   (structure-type-lookup-prefab-uid
    'known-procedure
    (if (struct-type? struct:known-consistent)
      struct:known-consistent
      (check-struct-type 'struct struct:known-consistent))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect320
  (struct-type-install-properties!
   struct:known-procedure
   'known-procedure
   1
   0
   (if (struct-type? struct:known-consistent)
     struct:known-consistent
     (check-struct-type 'struct struct:known-consistent))
   null
   'prefab
   #f
   '(0)
   #f
   'known-procedure))
(define known-procedure
  (|#%name|
   known-procedure
   (record-constructor
    (make-record-constructor-descriptor struct:known-procedure #f #f))))
(define known-procedure?319
  (|#%name| known-procedure? (record-predicate struct:known-procedure)))
(define known-procedure?
  (|#%name|
   known-procedure?
   (lambda (v)
     (if (known-procedure?319 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure?319 (impersonator-val v))
          #f))))))
(define known-procedure-arity-mask321
  (|#%name|
   known-procedure-arity-mask
   (record-accessor struct:known-procedure 0)))
(define known-procedure-arity-mask
  (|#%name|
   known-procedure-arity-mask
   (lambda (s)
     (if (known-procedure?319 s)
       (known-procedure-arity-mask321 s)
       ($value
        (impersonate-ref
         known-procedure-arity-mask321
         struct:known-procedure
         0
         s
         'known-procedure
         'arity-mask))))))
(define effect322
  (begin
    (register-struct-constructor! known-procedure)
    (register-struct-predicate! known-procedure?)
    (register-struct-field-accessor!
     known-procedure-arity-mask
     struct:known-procedure
     0)
    (void)))
(define struct:known-procedure/no-prompt
  (make-record-type-descriptor*
   'known-procedure/no-prompt
   (if (struct-type? struct:known-procedure)
     struct:known-procedure
     (check-struct-type 'struct struct:known-procedure))
   (structure-type-lookup-prefab-uid
    'known-procedure/no-prompt
    (if (struct-type? struct:known-procedure)
      struct:known-procedure
      (check-struct-type 'struct struct:known-procedure))
    0
    0
    #f
    '())
   #f
   #f
   0
   0))
(define effect324
  (struct-type-install-properties!
   struct:known-procedure/no-prompt
   'known-procedure/no-prompt
   0
   0
   (if (struct-type? struct:known-procedure)
     struct:known-procedure
     (check-struct-type 'struct struct:known-procedure))
   null
   'prefab
   #f
   '()
   #f
   'known-procedure/no-prompt))
(define known-procedure/no-prompt
  (|#%name|
   known-procedure/no-prompt
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-procedure/no-prompt
     #f
     #f))))
(define known-procedure/no-prompt?323
  (|#%name|
   known-procedure/no-prompt?
   (record-predicate struct:known-procedure/no-prompt)))
(define known-procedure/no-prompt?
  (|#%name|
   known-procedure/no-prompt?
   (lambda (v)
     (if (known-procedure/no-prompt?323 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/no-prompt?323 (impersonator-val v))
          #f))))))
(define effect325
  (begin
    (register-struct-constructor! known-procedure/no-prompt)
    (register-struct-predicate! known-procedure/no-prompt?)
    (void)))
(define struct:known-procedure/can-inline
  (make-record-type-descriptor*
   'known-procedure/can-inline
   (if (struct-type? struct:known-procedure)
     struct:known-procedure
     (check-struct-type 'struct struct:known-procedure))
   (structure-type-lookup-prefab-uid
    'known-procedure/can-inline
    (if (struct-type? struct:known-procedure)
      struct:known-procedure
      (check-struct-type 'struct struct:known-procedure))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect327
  (struct-type-install-properties!
   struct:known-procedure/can-inline
   'known-procedure/can-inline
   1
   0
   (if (struct-type? struct:known-procedure)
     struct:known-procedure
     (check-struct-type 'struct struct:known-procedure))
   null
   'prefab
   #f
   '(0)
   #f
   'known-procedure/can-inline))
(define known-procedure/can-inline
  (|#%name|
   known-procedure/can-inline
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-procedure/can-inline
     #f
     #f))))
(define known-procedure/can-inline?326
  (|#%name|
   known-procedure/can-inline?
   (record-predicate struct:known-procedure/can-inline)))
(define known-procedure/can-inline?
  (|#%name|
   known-procedure/can-inline?
   (lambda (v)
     (if (known-procedure/can-inline?326 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/can-inline?326 (impersonator-val v))
          #f))))))
(define known-procedure/can-inline-expr328
  (|#%name|
   known-procedure/can-inline-expr
   (record-accessor struct:known-procedure/can-inline 0)))
(define known-procedure/can-inline-expr
  (|#%name|
   known-procedure/can-inline-expr
   (lambda (s)
     (if (known-procedure/can-inline?326 s)
       (known-procedure/can-inline-expr328 s)
       ($value
        (impersonate-ref
         known-procedure/can-inline-expr328
         struct:known-procedure/can-inline
         0
         s
         'known-procedure/can-inline
         'expr))))))
(define effect329
  (begin
    (register-struct-constructor! known-procedure/can-inline)
    (register-struct-predicate! known-procedure/can-inline?)
    (register-struct-field-accessor!
     known-procedure/can-inline-expr
     struct:known-procedure/can-inline
     0)
    (void)))
(define struct:known-procedure/can-inline/need-imports
  (make-record-type-descriptor*
   'known-procedure/can-inline/need-imports
   (if (struct-type? struct:known-procedure/can-inline)
     struct:known-procedure/can-inline
     (check-struct-type 'struct struct:known-procedure/can-inline))
   (structure-type-lookup-prefab-uid
    'known-procedure/can-inline/need-imports
    (if (struct-type? struct:known-procedure/can-inline)
      struct:known-procedure/can-inline
      (check-struct-type 'struct struct:known-procedure/can-inline))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect331
  (struct-type-install-properties!
   struct:known-procedure/can-inline/need-imports
   'known-procedure/can-inline/need-imports
   1
   0
   (if (struct-type? struct:known-procedure/can-inline)
     struct:known-procedure/can-inline
     (check-struct-type 'struct struct:known-procedure/can-inline))
   null
   'prefab
   #f
   '(0)
   #f
   'known-procedure/can-inline/need-imports))
(define known-procedure/can-inline/need-imports
  (|#%name|
   known-procedure/can-inline/need-imports
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-procedure/can-inline/need-imports
     #f
     #f))))
(define known-procedure/can-inline/need-imports?330
  (|#%name|
   known-procedure/can-inline/need-imports?
   (record-predicate struct:known-procedure/can-inline/need-imports)))
(define known-procedure/can-inline/need-imports?
  (|#%name|
   known-procedure/can-inline/need-imports?
   (lambda (v)
     (if (known-procedure/can-inline/need-imports?330 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/can-inline/need-imports?330 (impersonator-val v))
          #f))))))
(define known-procedure/can-inline/need-imports-needed332
  (|#%name|
   known-procedure/can-inline/need-imports-needed
   (record-accessor struct:known-procedure/can-inline/need-imports 0)))
(define known-procedure/can-inline/need-imports-needed
  (|#%name|
   known-procedure/can-inline/need-imports-needed
   (lambda (s)
     (if (known-procedure/can-inline/need-imports?330 s)
       (known-procedure/can-inline/need-imports-needed332 s)
       ($value
        (impersonate-ref
         known-procedure/can-inline/need-imports-needed332
         struct:known-procedure/can-inline/need-imports
         0
         s
         'known-procedure/can-inline/need-imports
         'needed))))))
(define effect333
  (begin
    (register-struct-constructor! known-procedure/can-inline/need-imports)
    (register-struct-predicate! known-procedure/can-inline/need-imports?)
    (register-struct-field-accessor!
     known-procedure/can-inline/need-imports-needed
     struct:known-procedure/can-inline/need-imports
     0)
    (void)))
(define struct:known-procedure/folding
  (make-record-type-descriptor*
   'known-procedure/folding
   (if (struct-type? struct:known-procedure/no-prompt)
     struct:known-procedure/no-prompt
     (check-struct-type 'struct struct:known-procedure/no-prompt))
   (structure-type-lookup-prefab-uid
    'known-procedure/folding
    (if (struct-type? struct:known-procedure/no-prompt)
      struct:known-procedure/no-prompt
      (check-struct-type 'struct struct:known-procedure/no-prompt))
    0
    0
    #f
    '())
   #f
   #f
   0
   0))
(define effect335
  (struct-type-install-properties!
   struct:known-procedure/folding
   'known-procedure/folding
   0
   0
   (if (struct-type? struct:known-procedure/no-prompt)
     struct:known-procedure/no-prompt
     (check-struct-type 'struct struct:known-procedure/no-prompt))
   null
   'prefab
   #f
   '()
   #f
   'known-procedure/folding))
(define known-procedure/folding
  (|#%name|
   known-procedure/folding
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-procedure/folding
     #f
     #f))))
(define known-procedure/folding?334
  (|#%name|
   known-procedure/folding?
   (record-predicate struct:known-procedure/folding)))
(define known-procedure/folding?
  (|#%name|
   known-procedure/folding?
   (lambda (v)
     (if (known-procedure/folding?334 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/folding?334 (impersonator-val v))
          #f))))))
(define effect336
  (begin
    (register-struct-constructor! known-procedure/folding)
    (register-struct-predicate! known-procedure/folding?)
    (void)))
(define struct:known-procedure/folding/limited
  (make-record-type-descriptor*
   'known-procedure/folding/limited
   (if (struct-type? struct:known-procedure/folding)
     struct:known-procedure/folding
     (check-struct-type 'struct struct:known-procedure/folding))
   (structure-type-lookup-prefab-uid
    'known-procedure/folding/limited
    (if (struct-type? struct:known-procedure/folding)
      struct:known-procedure/folding
      (check-struct-type 'struct struct:known-procedure/folding))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect338
  (struct-type-install-properties!
   struct:known-procedure/folding/limited
   'known-procedure/folding/limited
   1
   0
   (if (struct-type? struct:known-procedure/folding)
     struct:known-procedure/folding
     (check-struct-type 'struct struct:known-procedure/folding))
   null
   'prefab
   #f
   '(0)
   #f
   'known-procedure/folding/limited))
(define known-procedure/folding/limited
  (|#%name|
   known-procedure/folding/limited
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-procedure/folding/limited
     #f
     #f))))
(define known-procedure/folding/limited?337
  (|#%name|
   known-procedure/folding/limited?
   (record-predicate struct:known-procedure/folding/limited)))
(define known-procedure/folding/limited?
  (|#%name|
   known-procedure/folding/limited?
   (lambda (v)
     (if (known-procedure/folding/limited?337 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/folding/limited?337 (impersonator-val v))
          #f))))))
(define known-procedure/folding/limited-kind339
  (|#%name|
   known-procedure/folding/limited-kind
   (record-accessor struct:known-procedure/folding/limited 0)))
(define known-procedure/folding/limited-kind
  (|#%name|
   known-procedure/folding/limited-kind
   (lambda (s)
     (if (known-procedure/folding/limited?337 s)
       (known-procedure/folding/limited-kind339 s)
       ($value
        (impersonate-ref
         known-procedure/folding/limited-kind339
         struct:known-procedure/folding/limited
         0
         s
         'known-procedure/folding/limited
         'kind))))))
(define effect340
  (begin
    (register-struct-constructor! known-procedure/folding/limited)
    (register-struct-predicate! known-procedure/folding/limited?)
    (register-struct-field-accessor!
     known-procedure/folding/limited-kind
     struct:known-procedure/folding/limited
     0)
    (void)))
(define struct:known-procedure/succeeds
  (make-record-type-descriptor*
   'known-procedure/succeeds
   (if (struct-type? struct:known-procedure/no-prompt)
     struct:known-procedure/no-prompt
     (check-struct-type 'struct struct:known-procedure/no-prompt))
   (structure-type-lookup-prefab-uid
    'known-procedure/succeeds
    (if (struct-type? struct:known-procedure/no-prompt)
      struct:known-procedure/no-prompt
      (check-struct-type 'struct struct:known-procedure/no-prompt))
    0
    0
    #f
    '())
   #f
   #f
   0
   0))
(define effect342
  (struct-type-install-properties!
   struct:known-procedure/succeeds
   'known-procedure/succeeds
   0
   0
   (if (struct-type? struct:known-procedure/no-prompt)
     struct:known-procedure/no-prompt
     (check-struct-type 'struct struct:known-procedure/no-prompt))
   null
   'prefab
   #f
   '()
   #f
   'known-procedure/succeeds))
(define known-procedure/succeeds
  (|#%name|
   known-procedure/succeeds
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-procedure/succeeds
     #f
     #f))))
(define known-procedure/succeeds?341
  (|#%name|
   known-procedure/succeeds?
   (record-predicate struct:known-procedure/succeeds)))
(define known-procedure/succeeds?
  (|#%name|
   known-procedure/succeeds?
   (lambda (v)
     (if (known-procedure/succeeds?341 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/succeeds?341 (impersonator-val v))
          #f))))))
(define effect343
  (begin
    (register-struct-constructor! known-procedure/succeeds)
    (register-struct-predicate! known-procedure/succeeds?)
    (void)))
(define struct:known-procedure/pure
  (make-record-type-descriptor*
   'known-procedure/pure
   (if (struct-type? struct:known-procedure/succeeds)
     struct:known-procedure/succeeds
     (check-struct-type 'struct struct:known-procedure/succeeds))
   (structure-type-lookup-prefab-uid
    'known-procedure/pure
    (if (struct-type? struct:known-procedure/succeeds)
      struct:known-procedure/succeeds
      (check-struct-type 'struct struct:known-procedure/succeeds))
    0
    0
    #f
    '())
   #f
   #f
   0
   0))
(define effect345
  (struct-type-install-properties!
   struct:known-procedure/pure
   'known-procedure/pure
   0
   0
   (if (struct-type? struct:known-procedure/succeeds)
     struct:known-procedure/succeeds
     (check-struct-type 'struct struct:known-procedure/succeeds))
   null
   'prefab
   #f
   '()
   #f
   'known-procedure/pure))
(define known-procedure/pure
  (|#%name|
   known-procedure/pure
   (record-constructor
    (make-record-constructor-descriptor struct:known-procedure/pure #f #f))))
(define known-procedure/pure?344
  (|#%name|
   known-procedure/pure?
   (record-predicate struct:known-procedure/pure)))
(define known-procedure/pure?
  (|#%name|
   known-procedure/pure?
   (lambda (v)
     (if (known-procedure/pure?344 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/pure?344 (impersonator-val v))
          #f))))))
(define effect346
  (begin
    (register-struct-constructor! known-procedure/pure)
    (register-struct-predicate! known-procedure/pure?)
    (void)))
(define struct:known-procedure/pure/folding
  (make-record-type-descriptor*
   'known-procedure/pure/folding
   (if (struct-type? struct:known-procedure/pure)
     struct:known-procedure/pure
     (check-struct-type 'struct struct:known-procedure/pure))
   (structure-type-lookup-prefab-uid
    'known-procedure/pure/folding
    (if (struct-type? struct:known-procedure/pure)
      struct:known-procedure/pure
      (check-struct-type 'struct struct:known-procedure/pure))
    0
    0
    #f
    '())
   #f
   #f
   0
   0))
(define effect348
  (struct-type-install-properties!
   struct:known-procedure/pure/folding
   'known-procedure/pure/folding
   0
   0
   (if (struct-type? struct:known-procedure/pure)
     struct:known-procedure/pure
     (check-struct-type 'struct struct:known-procedure/pure))
   null
   'prefab
   #f
   '()
   #f
   'known-procedure/pure/folding))
(define known-procedure/pure/folding
  (|#%name|
   known-procedure/pure/folding
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-procedure/pure/folding
     #f
     #f))))
(define known-procedure/pure/folding?347
  (|#%name|
   known-procedure/pure/folding?
   (record-predicate struct:known-procedure/pure/folding)))
(define known-procedure/pure/folding?
  (|#%name|
   known-procedure/pure/folding?
   (lambda (v)
     (if (known-procedure/pure/folding?347 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/pure/folding?347 (impersonator-val v))
          #f))))))
(define effect349
  (begin
    (register-struct-constructor! known-procedure/pure/folding)
    (register-struct-predicate! known-procedure/pure/folding?)
    (void)))
(define struct:known-procedure/pure/folding-unsafe
  (make-record-type-descriptor*
   'known-procedure/pure/folding-unsafe
   (if (struct-type? struct:known-procedure/pure/folding)
     struct:known-procedure/pure/folding
     (check-struct-type 'struct struct:known-procedure/pure/folding))
   (structure-type-lookup-prefab-uid
    'known-procedure/pure/folding-unsafe
    (if (struct-type? struct:known-procedure/pure/folding)
      struct:known-procedure/pure/folding
      (check-struct-type 'struct struct:known-procedure/pure/folding))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect351
  (struct-type-install-properties!
   struct:known-procedure/pure/folding-unsafe
   'known-procedure/pure/folding-unsafe
   1
   0
   (if (struct-type? struct:known-procedure/pure/folding)
     struct:known-procedure/pure/folding
     (check-struct-type 'struct struct:known-procedure/pure/folding))
   null
   'prefab
   #f
   '(0)
   #f
   'known-procedure/pure/folding-unsafe))
(define known-procedure/pure/folding-unsafe
  (|#%name|
   known-procedure/pure/folding-unsafe
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-procedure/pure/folding-unsafe
     #f
     #f))))
(define known-procedure/pure/folding-unsafe?350
  (|#%name|
   known-procedure/pure/folding-unsafe?
   (record-predicate struct:known-procedure/pure/folding-unsafe)))
(define known-procedure/pure/folding-unsafe?
  (|#%name|
   known-procedure/pure/folding-unsafe?
   (lambda (v)
     (if (known-procedure/pure/folding-unsafe?350 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/pure/folding-unsafe?350 (impersonator-val v))
          #f))))))
(define known-procedure/pure/folding-unsafe-safe352
  (|#%name|
   known-procedure/pure/folding-unsafe-safe
   (record-accessor struct:known-procedure/pure/folding-unsafe 0)))
(define known-procedure/pure/folding-unsafe-safe
  (|#%name|
   known-procedure/pure/folding-unsafe-safe
   (lambda (s)
     (if (known-procedure/pure/folding-unsafe?350 s)
       (known-procedure/pure/folding-unsafe-safe352 s)
       ($value
        (impersonate-ref
         known-procedure/pure/folding-unsafe-safe352
         struct:known-procedure/pure/folding-unsafe
         0
         s
         'known-procedure/pure/folding-unsafe
         'safe))))))
(define effect353
  (begin
    (register-struct-constructor! known-procedure/pure/folding-unsafe)
    (register-struct-predicate! known-procedure/pure/folding-unsafe?)
    (register-struct-field-accessor!
     known-procedure/pure/folding-unsafe-safe
     struct:known-procedure/pure/folding-unsafe
     0)
    (void)))
(define struct:known-procedure/has-unsafe
  (make-record-type-descriptor*
   'known-procedure/has-unsafe
   (if (struct-type? struct:known-procedure/no-prompt)
     struct:known-procedure/no-prompt
     (check-struct-type 'struct struct:known-procedure/no-prompt))
   (structure-type-lookup-prefab-uid
    'known-procedure/has-unsafe
    (if (struct-type? struct:known-procedure/no-prompt)
      struct:known-procedure/no-prompt
      (check-struct-type 'struct struct:known-procedure/no-prompt))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect355
  (struct-type-install-properties!
   struct:known-procedure/has-unsafe
   'known-procedure/has-unsafe
   1
   0
   (if (struct-type? struct:known-procedure/no-prompt)
     struct:known-procedure/no-prompt
     (check-struct-type 'struct struct:known-procedure/no-prompt))
   null
   'prefab
   #f
   '(0)
   #f
   'known-procedure/has-unsafe))
(define known-procedure/has-unsafe
  (|#%name|
   known-procedure/has-unsafe
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-procedure/has-unsafe
     #f
     #f))))
(define known-procedure/has-unsafe?354
  (|#%name|
   known-procedure/has-unsafe?
   (record-predicate struct:known-procedure/has-unsafe)))
(define known-procedure/has-unsafe?
  (|#%name|
   known-procedure/has-unsafe?
   (lambda (v)
     (if (known-procedure/has-unsafe?354 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/has-unsafe?354 (impersonator-val v))
          #f))))))
(define known-procedure/has-unsafe-alternate356
  (|#%name|
   known-procedure/has-unsafe-alternate
   (record-accessor struct:known-procedure/has-unsafe 0)))
(define known-procedure/has-unsafe-alternate
  (|#%name|
   known-procedure/has-unsafe-alternate
   (lambda (s)
     (if (known-procedure/has-unsafe?354 s)
       (known-procedure/has-unsafe-alternate356 s)
       ($value
        (impersonate-ref
         known-procedure/has-unsafe-alternate356
         struct:known-procedure/has-unsafe
         0
         s
         'known-procedure/has-unsafe
         'alternate))))))
(define effect357
  (begin
    (register-struct-constructor! known-procedure/has-unsafe)
    (register-struct-predicate! known-procedure/has-unsafe?)
    (register-struct-field-accessor!
     known-procedure/has-unsafe-alternate
     struct:known-procedure/has-unsafe
     0)
    (void)))
(define struct:known-procedure/has-unsafe/folding
  (make-record-type-descriptor*
   'known-procedure/has-unsafe/folding
   (if (struct-type? struct:known-procedure/has-unsafe)
     struct:known-procedure/has-unsafe
     (check-struct-type 'struct struct:known-procedure/has-unsafe))
   (structure-type-lookup-prefab-uid
    'known-procedure/has-unsafe/folding
    (if (struct-type? struct:known-procedure/has-unsafe)
      struct:known-procedure/has-unsafe
      (check-struct-type 'struct struct:known-procedure/has-unsafe))
    0
    0
    #f
    '())
   #f
   #f
   0
   0))
(define effect359
  (struct-type-install-properties!
   struct:known-procedure/has-unsafe/folding
   'known-procedure/has-unsafe/folding
   0
   0
   (if (struct-type? struct:known-procedure/has-unsafe)
     struct:known-procedure/has-unsafe
     (check-struct-type 'struct struct:known-procedure/has-unsafe))
   null
   'prefab
   #f
   '()
   #f
   'known-procedure/has-unsafe/folding))
(define known-procedure/has-unsafe/folding
  (|#%name|
   known-procedure/has-unsafe/folding
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-procedure/has-unsafe/folding
     #f
     #f))))
(define known-procedure/has-unsafe/folding?358
  (|#%name|
   known-procedure/has-unsafe/folding?
   (record-predicate struct:known-procedure/has-unsafe/folding)))
(define known-procedure/has-unsafe/folding?
  (|#%name|
   known-procedure/has-unsafe/folding?
   (lambda (v)
     (if (known-procedure/has-unsafe/folding?358 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/has-unsafe/folding?358 (impersonator-val v))
          #f))))))
(define effect360
  (begin
    (register-struct-constructor! known-procedure/has-unsafe/folding)
    (register-struct-predicate! known-procedure/has-unsafe/folding?)
    (void)))
(define struct:known-procedure/has-unsafe/folding/limited
  (make-record-type-descriptor*
   'known-procedure/has-unsafe/folding/limited
   (if (struct-type? struct:known-procedure/has-unsafe/folding)
     struct:known-procedure/has-unsafe/folding
     (check-struct-type 'struct struct:known-procedure/has-unsafe/folding))
   (structure-type-lookup-prefab-uid
    'known-procedure/has-unsafe/folding/limited
    (if (struct-type? struct:known-procedure/has-unsafe/folding)
      struct:known-procedure/has-unsafe/folding
      (check-struct-type 'struct struct:known-procedure/has-unsafe/folding))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect362
  (struct-type-install-properties!
   struct:known-procedure/has-unsafe/folding/limited
   'known-procedure/has-unsafe/folding/limited
   1
   0
   (if (struct-type? struct:known-procedure/has-unsafe/folding)
     struct:known-procedure/has-unsafe/folding
     (check-struct-type 'struct struct:known-procedure/has-unsafe/folding))
   null
   'prefab
   #f
   '(0)
   #f
   'known-procedure/has-unsafe/folding/limited))
(define known-procedure/has-unsafe/folding/limited
  (|#%name|
   known-procedure/has-unsafe/folding/limited
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-procedure/has-unsafe/folding/limited
     #f
     #f))))
(define known-procedure/has-unsafe/folding/limited?361
  (|#%name|
   known-procedure/has-unsafe/folding/limited?
   (record-predicate struct:known-procedure/has-unsafe/folding/limited)))
(define known-procedure/has-unsafe/folding/limited?
  (|#%name|
   known-procedure/has-unsafe/folding/limited?
   (lambda (v)
     (if (known-procedure/has-unsafe/folding/limited?361 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/has-unsafe/folding/limited?361 (impersonator-val v))
          #f))))))
(define known-procedure/has-unsafe/folding/limited-kind363
  (|#%name|
   known-procedure/has-unsafe/folding/limited-kind
   (record-accessor struct:known-procedure/has-unsafe/folding/limited 0)))
(define known-procedure/has-unsafe/folding/limited-kind
  (|#%name|
   known-procedure/has-unsafe/folding/limited-kind
   (lambda (s)
     (if (known-procedure/has-unsafe/folding/limited?361 s)
       (known-procedure/has-unsafe/folding/limited-kind363 s)
       ($value
        (impersonate-ref
         known-procedure/has-unsafe/folding/limited-kind363
         struct:known-procedure/has-unsafe/folding/limited
         0
         s
         'known-procedure/has-unsafe/folding/limited
         'kind))))))
(define effect364
  (begin
    (register-struct-constructor! known-procedure/has-unsafe/folding/limited)
    (register-struct-predicate! known-procedure/has-unsafe/folding/limited?)
    (register-struct-field-accessor!
     known-procedure/has-unsafe/folding/limited-kind
     struct:known-procedure/has-unsafe/folding/limited
     0)
    (void)))
(define struct:known-struct-type
  (make-record-type-descriptor*
   'known-struct-type
   (if (struct-type? struct:known-consistent)
     struct:known-consistent
     (check-struct-type 'struct struct:known-consistent))
   (structure-type-lookup-prefab-uid
    'known-struct-type
    (if (struct-type? struct:known-consistent)
      struct:known-consistent
      (check-struct-type 'struct struct:known-consistent))
    3
    0
    #f
    '(0 1 2))
   #f
   #f
   3
   7))
(define effect366
  (struct-type-install-properties!
   struct:known-struct-type
   'known-struct-type
   3
   0
   (if (struct-type? struct:known-consistent)
     struct:known-consistent
     (check-struct-type 'struct struct:known-consistent))
   null
   'prefab
   #f
   '(0 1 2)
   #f
   'known-struct-type))
(define known-struct-type
  (|#%name|
   known-struct-type
   (record-constructor
    (make-record-constructor-descriptor struct:known-struct-type #f #f))))
(define known-struct-type?365
  (|#%name| known-struct-type? (record-predicate struct:known-struct-type)))
(define known-struct-type?
  (|#%name|
   known-struct-type?
   (lambda (v)
     (if (known-struct-type?365 v)
       #t
       ($value
        (if (impersonator? v)
          (known-struct-type?365 (impersonator-val v))
          #f))))))
(define known-struct-type-type367
  (|#%name|
   known-struct-type-type
   (record-accessor struct:known-struct-type 0)))
(define known-struct-type-type
  (|#%name|
   known-struct-type-type
   (lambda (s)
     (if (known-struct-type?365 s)
       (known-struct-type-type367 s)
       ($value
        (impersonate-ref
         known-struct-type-type367
         struct:known-struct-type
         0
         s
         'known-struct-type
         'type))))))
(define known-struct-type-field-count368
  (|#%name|
   known-struct-type-field-count
   (record-accessor struct:known-struct-type 1)))
(define known-struct-type-field-count
  (|#%name|
   known-struct-type-field-count
   (lambda (s)
     (if (known-struct-type?365 s)
       (known-struct-type-field-count368 s)
       ($value
        (impersonate-ref
         known-struct-type-field-count368
         struct:known-struct-type
         1
         s
         'known-struct-type
         'field-count))))))
(define known-struct-type-pure-constructor?369
  (|#%name|
   known-struct-type-pure-constructor?
   (record-accessor struct:known-struct-type 2)))
(define known-struct-type-pure-constructor?
  (|#%name|
   known-struct-type-pure-constructor?
   (lambda (s)
     (if (known-struct-type?365 s)
       (known-struct-type-pure-constructor?369 s)
       ($value
        (impersonate-ref
         known-struct-type-pure-constructor?369
         struct:known-struct-type
         2
         s
         'known-struct-type
         'pure-constructor?))))))
(define effect370
  (begin
    (register-struct-constructor! known-struct-type)
    (register-struct-predicate! known-struct-type?)
    (register-struct-field-accessor!
     known-struct-type-type
     struct:known-struct-type
     0)
    (register-struct-field-accessor!
     known-struct-type-field-count
     struct:known-struct-type
     1)
    (register-struct-field-accessor!
     known-struct-type-pure-constructor?
     struct:known-struct-type
     2)
    (void)))
(define struct:known-constructor
  (make-record-type-descriptor*
   'known-constructor
   (if (struct-type? struct:known-procedure/pure)
     struct:known-procedure/pure
     (check-struct-type 'struct struct:known-procedure/pure))
   (structure-type-lookup-prefab-uid
    'known-constructor
    (if (struct-type? struct:known-procedure/pure)
      struct:known-procedure/pure
      (check-struct-type 'struct struct:known-procedure/pure))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect372
  (struct-type-install-properties!
   struct:known-constructor
   'known-constructor
   1
   0
   (if (struct-type? struct:known-procedure/pure)
     struct:known-procedure/pure
     (check-struct-type 'struct struct:known-procedure/pure))
   null
   'prefab
   #f
   '(0)
   #f
   'known-constructor))
(define known-constructor
  (|#%name|
   known-constructor
   (record-constructor
    (make-record-constructor-descriptor struct:known-constructor #f #f))))
(define known-constructor?371
  (|#%name| known-constructor? (record-predicate struct:known-constructor)))
(define known-constructor?
  (|#%name|
   known-constructor?
   (lambda (v)
     (if (known-constructor?371 v)
       #t
       ($value
        (if (impersonator? v)
          (known-constructor?371 (impersonator-val v))
          #f))))))
(define known-constructor-type373
  (|#%name|
   known-constructor-type
   (record-accessor struct:known-constructor 0)))
(define known-constructor-type
  (|#%name|
   known-constructor-type
   (lambda (s)
     (if (known-constructor?371 s)
       (known-constructor-type373 s)
       ($value
        (impersonate-ref
         known-constructor-type373
         struct:known-constructor
         0
         s
         'known-constructor
         'type))))))
(define effect374
  (begin
    (register-struct-constructor! known-constructor)
    (register-struct-predicate! known-constructor?)
    (register-struct-field-accessor!
     known-constructor-type
     struct:known-constructor
     0)
    (void)))
(define struct:known-predicate
  (make-record-type-descriptor*
   'known-predicate
   (if (struct-type? struct:known-procedure/pure)
     struct:known-procedure/pure
     (check-struct-type 'struct struct:known-procedure/pure))
   (structure-type-lookup-prefab-uid
    'known-predicate
    (if (struct-type? struct:known-procedure/pure)
      struct:known-procedure/pure
      (check-struct-type 'struct struct:known-procedure/pure))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect376
  (struct-type-install-properties!
   struct:known-predicate
   'known-predicate
   1
   0
   (if (struct-type? struct:known-procedure/pure)
     struct:known-procedure/pure
     (check-struct-type 'struct struct:known-procedure/pure))
   null
   'prefab
   #f
   '(0)
   #f
   'known-predicate))
(define known-predicate
  (|#%name|
   known-predicate
   (record-constructor
    (make-record-constructor-descriptor struct:known-predicate #f #f))))
(define known-predicate?375
  (|#%name| known-predicate? (record-predicate struct:known-predicate)))
(define known-predicate?
  (|#%name|
   known-predicate?
   (lambda (v)
     (if (known-predicate?375 v)
       #t
       ($value
        (if (impersonator? v)
          (known-predicate?375 (impersonator-val v))
          #f))))))
(define known-predicate-type377
  (|#%name| known-predicate-type (record-accessor struct:known-predicate 0)))
(define known-predicate-type
  (|#%name|
   known-predicate-type
   (lambda (s)
     (if (known-predicate?375 s)
       (known-predicate-type377 s)
       ($value
        (impersonate-ref
         known-predicate-type377
         struct:known-predicate
         0
         s
         'known-predicate
         'type))))))
(define effect378
  (begin
    (register-struct-constructor! known-predicate)
    (register-struct-predicate! known-predicate?)
    (register-struct-field-accessor!
     known-predicate-type
     struct:known-predicate
     0)
    (void)))
(define struct:known-accessor
  (make-record-type-descriptor*
   'known-accessor
   (if (struct-type? struct:known-procedure)
     struct:known-procedure
     (check-struct-type 'struct struct:known-procedure))
   (structure-type-lookup-prefab-uid
    'known-accessor
    (if (struct-type? struct:known-procedure)
      struct:known-procedure
      (check-struct-type 'struct struct:known-procedure))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect380
  (struct-type-install-properties!
   struct:known-accessor
   'known-accessor
   1
   0
   (if (struct-type? struct:known-procedure)
     struct:known-procedure
     (check-struct-type 'struct struct:known-procedure))
   null
   'prefab
   #f
   '(0)
   #f
   'known-accessor))
(define known-accessor
  (|#%name|
   known-accessor
   (record-constructor
    (make-record-constructor-descriptor struct:known-accessor #f #f))))
(define known-accessor?379
  (|#%name| known-accessor? (record-predicate struct:known-accessor)))
(define known-accessor?
  (|#%name|
   known-accessor?
   (lambda (v)
     (if (known-accessor?379 v)
       #t
       ($value
        (if (impersonator? v)
          (known-accessor?379 (impersonator-val v))
          #f))))))
(define known-accessor-type381
  (|#%name| known-accessor-type (record-accessor struct:known-accessor 0)))
(define known-accessor-type
  (|#%name|
   known-accessor-type
   (lambda (s)
     (if (known-accessor?379 s)
       (known-accessor-type381 s)
       ($value
        (impersonate-ref
         known-accessor-type381
         struct:known-accessor
         0
         s
         'known-accessor
         'type))))))
(define effect382
  (begin
    (register-struct-constructor! known-accessor)
    (register-struct-predicate! known-accessor?)
    (register-struct-field-accessor!
     known-accessor-type
     struct:known-accessor
     0)
    (void)))
(define struct:known-mutator
  (make-record-type-descriptor*
   'known-mutator
   (if (struct-type? struct:known-procedure)
     struct:known-procedure
     (check-struct-type 'struct struct:known-procedure))
   (structure-type-lookup-prefab-uid
    'known-mutator
    (if (struct-type? struct:known-procedure)
      struct:known-procedure
      (check-struct-type 'struct struct:known-procedure))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect384
  (struct-type-install-properties!
   struct:known-mutator
   'known-mutator
   1
   0
   (if (struct-type? struct:known-procedure)
     struct:known-procedure
     (check-struct-type 'struct struct:known-procedure))
   null
   'prefab
   #f
   '(0)
   #f
   'known-mutator))
(define known-mutator
  (|#%name|
   known-mutator
   (record-constructor
    (make-record-constructor-descriptor struct:known-mutator #f #f))))
(define known-mutator?383
  (|#%name| known-mutator? (record-predicate struct:known-mutator)))
(define known-mutator?
  (|#%name|
   known-mutator?
   (lambda (v)
     (if (known-mutator?383 v)
       #t
       ($value
        (if (impersonator? v) (known-mutator?383 (impersonator-val v)) #f))))))
(define known-mutator-type385
  (|#%name| known-mutator-type (record-accessor struct:known-mutator 0)))
(define known-mutator-type
  (|#%name|
   known-mutator-type
   (lambda (s)
     (if (known-mutator?383 s)
       (known-mutator-type385 s)
       ($value
        (impersonate-ref
         known-mutator-type385
         struct:known-mutator
         0
         s
         'known-mutator
         'type))))))
(define effect386
  (begin
    (register-struct-constructor! known-mutator)
    (register-struct-predicate! known-mutator?)
    (register-struct-field-accessor! known-mutator-type struct:known-mutator 0)
    (void)))
(define struct:known-struct-predicate
  (make-record-type-descriptor*
   'known-struct-predicate
   (if (struct-type? struct:known-predicate)
     struct:known-predicate
     (check-struct-type 'struct struct:known-predicate))
   (structure-type-lookup-prefab-uid
    'known-struct-predicate
    (if (struct-type? struct:known-predicate)
      struct:known-predicate
      (check-struct-type 'struct struct:known-predicate))
    2
    0
    #f
    '(0 1))
   #f
   #f
   2
   3))
(define effect388
  (struct-type-install-properties!
   struct:known-struct-predicate
   'known-struct-predicate
   2
   0
   (if (struct-type? struct:known-predicate)
     struct:known-predicate
     (check-struct-type 'struct struct:known-predicate))
   null
   'prefab
   #f
   '(0 1)
   #f
   'known-struct-predicate))
(define known-struct-predicate
  (|#%name|
   known-struct-predicate
   (record-constructor
    (make-record-constructor-descriptor struct:known-struct-predicate #f #f))))
(define known-struct-predicate?387
  (|#%name|
   known-struct-predicate?
   (record-predicate struct:known-struct-predicate)))
(define known-struct-predicate?
  (|#%name|
   known-struct-predicate?
   (lambda (v)
     (if (known-struct-predicate?387 v)
       #t
       ($value
        (if (impersonator? v)
          (known-struct-predicate?387 (impersonator-val v))
          #f))))))
(define known-struct-predicate-type-id389
  (|#%name|
   known-struct-predicate-type-id
   (record-accessor struct:known-struct-predicate 0)))
(define known-struct-predicate-type-id
  (|#%name|
   known-struct-predicate-type-id
   (lambda (s)
     (if (known-struct-predicate?387 s)
       (known-struct-predicate-type-id389 s)
       ($value
        (impersonate-ref
         known-struct-predicate-type-id389
         struct:known-struct-predicate
         0
         s
         'known-struct-predicate
         'type-id))))))
(define known-struct-predicate-authentic?390
  (|#%name|
   known-struct-predicate-authentic?
   (record-accessor struct:known-struct-predicate 1)))
(define known-struct-predicate-authentic?
  (|#%name|
   known-struct-predicate-authentic?
   (lambda (s)
     (if (known-struct-predicate?387 s)
       (known-struct-predicate-authentic?390 s)
       ($value
        (impersonate-ref
         known-struct-predicate-authentic?390
         struct:known-struct-predicate
         1
         s
         'known-struct-predicate
         'authentic?))))))
(define effect391
  (begin
    (register-struct-constructor! known-struct-predicate)
    (register-struct-predicate! known-struct-predicate?)
    (register-struct-field-accessor!
     known-struct-predicate-type-id
     struct:known-struct-predicate
     0)
    (register-struct-field-accessor!
     known-struct-predicate-authentic?
     struct:known-struct-predicate
     1)
    (void)))
(define struct:known-field-accessor
  (make-record-type-descriptor*
   'known-field-accessor
   (if (struct-type? struct:known-accessor)
     struct:known-accessor
     (check-struct-type 'struct struct:known-accessor))
   (structure-type-lookup-prefab-uid
    'known-field-accessor
    (if (struct-type? struct:known-accessor)
      struct:known-accessor
      (check-struct-type 'struct struct:known-accessor))
    2
    0
    #f
    '(0 1))
   #f
   #f
   2
   3))
(define effect393
  (struct-type-install-properties!
   struct:known-field-accessor
   'known-field-accessor
   2
   0
   (if (struct-type? struct:known-accessor)
     struct:known-accessor
     (check-struct-type 'struct struct:known-accessor))
   null
   'prefab
   #f
   '(0 1)
   #f
   'known-field-accessor))
(define known-field-accessor
  (|#%name|
   known-field-accessor
   (record-constructor
    (make-record-constructor-descriptor struct:known-field-accessor #f #f))))
(define known-field-accessor?392
  (|#%name|
   known-field-accessor?
   (record-predicate struct:known-field-accessor)))
(define known-field-accessor?
  (|#%name|
   known-field-accessor?
   (lambda (v)
     (if (known-field-accessor?392 v)
       #t
       ($value
        (if (impersonator? v)
          (known-field-accessor?392 (impersonator-val v))
          #f))))))
(define known-field-accessor-type-id394
  (|#%name|
   known-field-accessor-type-id
   (record-accessor struct:known-field-accessor 0)))
(define known-field-accessor-type-id
  (|#%name|
   known-field-accessor-type-id
   (lambda (s)
     (if (known-field-accessor?392 s)
       (known-field-accessor-type-id394 s)
       ($value
        (impersonate-ref
         known-field-accessor-type-id394
         struct:known-field-accessor
         0
         s
         'known-field-accessor
         'type-id))))))
(define known-field-accessor-pos395
  (|#%name|
   known-field-accessor-pos
   (record-accessor struct:known-field-accessor 1)))
(define known-field-accessor-pos
  (|#%name|
   known-field-accessor-pos
   (lambda (s)
     (if (known-field-accessor?392 s)
       (known-field-accessor-pos395 s)
       ($value
        (impersonate-ref
         known-field-accessor-pos395
         struct:known-field-accessor
         1
         s
         'known-field-accessor
         'pos))))))
(define effect396
  (begin
    (register-struct-constructor! known-field-accessor)
    (register-struct-predicate! known-field-accessor?)
    (register-struct-field-accessor!
     known-field-accessor-type-id
     struct:known-field-accessor
     0)
    (register-struct-field-accessor!
     known-field-accessor-pos
     struct:known-field-accessor
     1)
    (void)))
(define struct:known-field-mutator
  (make-record-type-descriptor*
   'known-field-mutator
   (if (struct-type? struct:known-mutator)
     struct:known-mutator
     (check-struct-type 'struct struct:known-mutator))
   (structure-type-lookup-prefab-uid
    'known-field-mutator
    (if (struct-type? struct:known-mutator)
      struct:known-mutator
      (check-struct-type 'struct struct:known-mutator))
    2
    0
    #f
    '(0 1))
   #f
   #f
   2
   3))
(define effect398
  (struct-type-install-properties!
   struct:known-field-mutator
   'known-field-mutator
   2
   0
   (if (struct-type? struct:known-mutator)
     struct:known-mutator
     (check-struct-type 'struct struct:known-mutator))
   null
   'prefab
   #f
   '(0 1)
   #f
   'known-field-mutator))
(define known-field-mutator
  (|#%name|
   known-field-mutator
   (record-constructor
    (make-record-constructor-descriptor struct:known-field-mutator #f #f))))
(define known-field-mutator?397
  (|#%name|
   known-field-mutator?
   (record-predicate struct:known-field-mutator)))
(define known-field-mutator?
  (|#%name|
   known-field-mutator?
   (lambda (v)
     (if (known-field-mutator?397 v)
       #t
       ($value
        (if (impersonator? v)
          (known-field-mutator?397 (impersonator-val v))
          #f))))))
(define known-field-mutator-type-id399
  (|#%name|
   known-field-mutator-type-id
   (record-accessor struct:known-field-mutator 0)))
(define known-field-mutator-type-id
  (|#%name|
   known-field-mutator-type-id
   (lambda (s)
     (if (known-field-mutator?397 s)
       (known-field-mutator-type-id399 s)
       ($value
        (impersonate-ref
         known-field-mutator-type-id399
         struct:known-field-mutator
         0
         s
         'known-field-mutator
         'type-id))))))
(define known-field-mutator-pos400
  (|#%name|
   known-field-mutator-pos
   (record-accessor struct:known-field-mutator 1)))
(define known-field-mutator-pos
  (|#%name|
   known-field-mutator-pos
   (lambda (s)
     (if (known-field-mutator?397 s)
       (known-field-mutator-pos400 s)
       ($value
        (impersonate-ref
         known-field-mutator-pos400
         struct:known-field-mutator
         1
         s
         'known-field-mutator
         'pos))))))
(define effect401
  (begin
    (register-struct-constructor! known-field-mutator)
    (register-struct-predicate! known-field-mutator?)
    (register-struct-field-accessor!
     known-field-mutator-type-id
     struct:known-field-mutator
     0)
    (register-struct-field-accessor!
     known-field-mutator-pos
     struct:known-field-mutator
     1)
    (void)))
(define struct:known-struct-predicate/need-imports
  (make-record-type-descriptor*
   'known-struct-predicate/need-imports
   (if (struct-type? struct:known-struct-predicate)
     struct:known-struct-predicate
     (check-struct-type 'struct struct:known-struct-predicate))
   (structure-type-lookup-prefab-uid
    'known-struct-predicate/need-imports
    (if (struct-type? struct:known-struct-predicate)
      struct:known-struct-predicate
      (check-struct-type 'struct struct:known-struct-predicate))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect403
  (struct-type-install-properties!
   struct:known-struct-predicate/need-imports
   'known-struct-predicate/need-imports
   1
   0
   (if (struct-type? struct:known-struct-predicate)
     struct:known-struct-predicate
     (check-struct-type 'struct struct:known-struct-predicate))
   null
   'prefab
   #f
   '(0)
   #f
   'known-struct-predicate/need-imports))
(define known-struct-predicate/need-imports
  (|#%name|
   known-struct-predicate/need-imports
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-struct-predicate/need-imports
     #f
     #f))))
(define known-struct-predicate/need-imports?402
  (|#%name|
   known-struct-predicate/need-imports?
   (record-predicate struct:known-struct-predicate/need-imports)))
(define known-struct-predicate/need-imports?
  (|#%name|
   known-struct-predicate/need-imports?
   (lambda (v)
     (if (known-struct-predicate/need-imports?402 v)
       #t
       ($value
        (if (impersonator? v)
          (known-struct-predicate/need-imports?402 (impersonator-val v))
          #f))))))
(define known-struct-predicate/need-imports-needed404
  (|#%name|
   known-struct-predicate/need-imports-needed
   (record-accessor struct:known-struct-predicate/need-imports 0)))
(define known-struct-predicate/need-imports-needed
  (|#%name|
   known-struct-predicate/need-imports-needed
   (lambda (s)
     (if (known-struct-predicate/need-imports?402 s)
       (known-struct-predicate/need-imports-needed404 s)
       ($value
        (impersonate-ref
         known-struct-predicate/need-imports-needed404
         struct:known-struct-predicate/need-imports
         0
         s
         'known-struct-predicate/need-imports
         'needed))))))
(define effect405
  (begin
    (register-struct-constructor! known-struct-predicate/need-imports)
    (register-struct-predicate! known-struct-predicate/need-imports?)
    (register-struct-field-accessor!
     known-struct-predicate/need-imports-needed
     struct:known-struct-predicate/need-imports
     0)
    (void)))
(define struct:known-field-accessor/need-imports
  (make-record-type-descriptor*
   'known-field-accessor/need-imports
   (if (struct-type? struct:known-field-accessor)
     struct:known-field-accessor
     (check-struct-type 'struct struct:known-field-accessor))
   (structure-type-lookup-prefab-uid
    'known-field-accessor/need-imports
    (if (struct-type? struct:known-field-accessor)
      struct:known-field-accessor
      (check-struct-type 'struct struct:known-field-accessor))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect407
  (struct-type-install-properties!
   struct:known-field-accessor/need-imports
   'known-field-accessor/need-imports
   1
   0
   (if (struct-type? struct:known-field-accessor)
     struct:known-field-accessor
     (check-struct-type 'struct struct:known-field-accessor))
   null
   'prefab
   #f
   '(0)
   #f
   'known-field-accessor/need-imports))
(define known-field-accessor/need-imports
  (|#%name|
   known-field-accessor/need-imports
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-field-accessor/need-imports
     #f
     #f))))
(define known-field-accessor/need-imports?406
  (|#%name|
   known-field-accessor/need-imports?
   (record-predicate struct:known-field-accessor/need-imports)))
(define known-field-accessor/need-imports?
  (|#%name|
   known-field-accessor/need-imports?
   (lambda (v)
     (if (known-field-accessor/need-imports?406 v)
       #t
       ($value
        (if (impersonator? v)
          (known-field-accessor/need-imports?406 (impersonator-val v))
          #f))))))
(define known-field-accessor/need-imports-needed408
  (|#%name|
   known-field-accessor/need-imports-needed
   (record-accessor struct:known-field-accessor/need-imports 0)))
(define known-field-accessor/need-imports-needed
  (|#%name|
   known-field-accessor/need-imports-needed
   (lambda (s)
     (if (known-field-accessor/need-imports?406 s)
       (known-field-accessor/need-imports-needed408 s)
       ($value
        (impersonate-ref
         known-field-accessor/need-imports-needed408
         struct:known-field-accessor/need-imports
         0
         s
         'known-field-accessor/need-imports
         'needed))))))
(define effect409
  (begin
    (register-struct-constructor! known-field-accessor/need-imports)
    (register-struct-predicate! known-field-accessor/need-imports?)
    (register-struct-field-accessor!
     known-field-accessor/need-imports-needed
     struct:known-field-accessor/need-imports
     0)
    (void)))
(define struct:known-field-mutator/need-imports
  (make-record-type-descriptor*
   'known-field-mutator/need-imports
   (if (struct-type? struct:known-field-mutator)
     struct:known-field-mutator
     (check-struct-type 'struct struct:known-field-mutator))
   (structure-type-lookup-prefab-uid
    'known-field-mutator/need-imports
    (if (struct-type? struct:known-field-mutator)
      struct:known-field-mutator
      (check-struct-type 'struct struct:known-field-mutator))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect411
  (struct-type-install-properties!
   struct:known-field-mutator/need-imports
   'known-field-mutator/need-imports
   1
   0
   (if (struct-type? struct:known-field-mutator)
     struct:known-field-mutator
     (check-struct-type 'struct struct:known-field-mutator))
   null
   'prefab
   #f
   '(0)
   #f
   'known-field-mutator/need-imports))
(define known-field-mutator/need-imports
  (|#%name|
   known-field-mutator/need-imports
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-field-mutator/need-imports
     #f
     #f))))
(define known-field-mutator/need-imports?410
  (|#%name|
   known-field-mutator/need-imports?
   (record-predicate struct:known-field-mutator/need-imports)))
(define known-field-mutator/need-imports?
  (|#%name|
   known-field-mutator/need-imports?
   (lambda (v)
     (if (known-field-mutator/need-imports?410 v)
       #t
       ($value
        (if (impersonator? v)
          (known-field-mutator/need-imports?410 (impersonator-val v))
          #f))))))
(define known-field-mutator/need-imports-needed412
  (|#%name|
   known-field-mutator/need-imports-needed
   (record-accessor struct:known-field-mutator/need-imports 0)))
(define known-field-mutator/need-imports-needed
  (|#%name|
   known-field-mutator/need-imports-needed
   (lambda (s)
     (if (known-field-mutator/need-imports?410 s)
       (known-field-mutator/need-imports-needed412 s)
       ($value
        (impersonate-ref
         known-field-mutator/need-imports-needed412
         struct:known-field-mutator/need-imports
         0
         s
         'known-field-mutator/need-imports
         'needed))))))
(define effect413
  (begin
    (register-struct-constructor! known-field-mutator/need-imports)
    (register-struct-predicate! known-field-mutator/need-imports?)
    (register-struct-field-accessor!
     known-field-mutator/need-imports-needed
     struct:known-field-mutator/need-imports
     0)
    (void)))
(define struct:known-struct-type-property/immediate-guard
  (make-record-type-descriptor*
   'known-struct-type-property/immediate-guard
   #f
   (structure-type-lookup-prefab-uid
    'known-struct-type-property/immediate-guard
    #f
    0
    0
    #f
    '())
   #f
   #f
   0
   0))
(define effect415
  (struct-type-install-properties!
   struct:known-struct-type-property/immediate-guard
   'known-struct-type-property/immediate-guard
   0
   0
   #f
   null
   'prefab
   #f
   '()
   #f
   'known-struct-type-property/immediate-guard))
(define known-struct-type-property/immediate-guard
  (|#%name|
   known-struct-type-property/immediate-guard
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-struct-type-property/immediate-guard
     #f
     #f))))
(define known-struct-type-property/immediate-guard?414
  (|#%name|
   known-struct-type-property/immediate-guard?
   (record-predicate struct:known-struct-type-property/immediate-guard)))
(define known-struct-type-property/immediate-guard?
  (|#%name|
   known-struct-type-property/immediate-guard?
   (lambda (v)
     (if (known-struct-type-property/immediate-guard?414 v)
       #t
       ($value
        (if (impersonator? v)
          (known-struct-type-property/immediate-guard?414 (impersonator-val v))
          #f))))))
(define effect416
  (begin
    (register-struct-constructor! known-struct-type-property/immediate-guard)
    (register-struct-predicate! known-struct-type-property/immediate-guard?)
    (void)))
(define a-known-constant (known-constant))
(define a-known-consistent (known-consistent))
(define gensym-counter (make-parameter #f))
(define deterministic-gensym
  (lambda (prefix_0)
    (let ((b_0 (gensym-counter)))
      (begin
        (if b_0
          (void)
          (error
           'deterministic-gensym
           "not in `call-with-deterministic-gensym`"))
        (set-box! b_0 (add1 (unbox b_0)))
        (string->uninterned-symbol
         (let ((app_0
                (if (string? prefix_0) prefix_0 (symbol->string prefix_0))))
           (string-append app_0 (number->string (unbox b_0)))))))))
(define struct:import (make-record-type-descriptor* 'import #f #f #f #f 4 15))
(define effect424
  (struct-type-install-properties!
   struct:import
   'import
   4
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1 2 3)
   #f
   'import))
(define import1.1
  (|#%name|
   import
   (record-constructor
    (make-record-constructor-descriptor struct:import #f #f))))
(define import?423 (|#%name| import? (record-predicate struct:import)))
(define import?
  (|#%name|
   import?
   (lambda (v)
     (if (import?423 v)
       #t
       ($value (if (impersonator? v) (import?423 (impersonator-val v)) #f))))))
(define import-grp425 (|#%name| import-grp (record-accessor struct:import 0)))
(define import-grp
  (|#%name|
   import-grp
   (lambda (s)
     (if (import?423 s)
       (import-grp425 s)
       ($value
        (impersonate-ref import-grp425 struct:import 0 s 'import 'grp))))))
(define import-id426 (|#%name| import-id (record-accessor struct:import 1)))
(define import-id
  (|#%name|
   import-id
   (lambda (s)
     (if (import?423 s)
       (import-id426 s)
       ($value
        (impersonate-ref import-id426 struct:import 1 s 'import 'id))))))
(define import-int-id427
  (|#%name| import-int-id (record-accessor struct:import 2)))
(define import-int-id
  (|#%name|
   import-int-id
   (lambda (s)
     (if (import?423 s)
       (import-int-id427 s)
       ($value
        (impersonate-ref
         import-int-id427
         struct:import
         2
         s
         'import
         'int-id))))))
(define import-ext-id428
  (|#%name| import-ext-id (record-accessor struct:import 3)))
(define import-ext-id
  (|#%name|
   import-ext-id
   (lambda (s)
     (if (import?423 s)
       (import-ext-id428 s)
       ($value
        (impersonate-ref
         import-ext-id428
         struct:import
         3
         s
         'import
         'ext-id))))))
(define effect429
  (begin
    (register-struct-constructor! import1.1)
    (register-struct-predicate! import?)
    (register-struct-field-accessor! import-grp struct:import 0)
    (register-struct-field-accessor! import-id struct:import 1)
    (register-struct-field-accessor! import-int-id struct:import 2)
    (register-struct-field-accessor! import-ext-id struct:import 3)
    (void)))
(define struct:import-group
  (make-record-type-descriptor* 'import-group #f #f #f #f 6 63))
(define effect431
  (struct-type-install-properties!
   struct:import-group
   'import-group
   6
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'import-group))
(define import-group2.1
  (|#%name|
   import-group
   (record-constructor
    (make-record-constructor-descriptor struct:import-group #f #f))))
(define import-group?430
  (|#%name| import-group? (record-predicate struct:import-group)))
(define import-group?
  (|#%name|
   import-group?
   (lambda (v)
     (if (import-group?430 v)
       #t
       ($value
        (if (impersonator? v) (import-group?430 (impersonator-val v)) #f))))))
(define import-group-index432
  (|#%name| import-group-index (record-accessor struct:import-group 0)))
(define import-group-index
  (|#%name|
   import-group-index
   (lambda (s)
     (if (import-group?430 s)
       (import-group-index432 s)
       ($value
        (impersonate-ref
         import-group-index432
         struct:import-group
         0
         s
         'import-group
         'index))))))
(define import-group-key433
  (|#%name| import-group-key (record-accessor struct:import-group 1)))
(define import-group-key
  (|#%name|
   import-group-key
   (lambda (s)
     (if (import-group?430 s)
       (import-group-key433 s)
       ($value
        (impersonate-ref
         import-group-key433
         struct:import-group
         1
         s
         'import-group
         'key))))))
(define import-group-knowns/proc434
  (|#%name| import-group-knowns/proc (record-accessor struct:import-group 2)))
(define import-group-knowns/proc
  (|#%name|
   import-group-knowns/proc
   (lambda (s)
     (if (import-group?430 s)
       (import-group-knowns/proc434 s)
       ($value
        (impersonate-ref
         import-group-knowns/proc434
         struct:import-group
         2
         s
         'import-group
         'knowns/proc))))))
(define import-group-converter435
  (|#%name| import-group-converter (record-accessor struct:import-group 3)))
(define import-group-converter
  (|#%name|
   import-group-converter
   (lambda (s)
     (if (import-group?430 s)
       (import-group-converter435 s)
       ($value
        (impersonate-ref
         import-group-converter435
         struct:import-group
         3
         s
         'import-group
         'converter))))))
(define import-group-import-keys436
  (|#%name| import-group-import-keys (record-accessor struct:import-group 4)))
(define import-group-import-keys
  (|#%name|
   import-group-import-keys
   (lambda (s)
     (if (import-group?430 s)
       (import-group-import-keys436 s)
       ($value
        (impersonate-ref
         import-group-import-keys436
         struct:import-group
         4
         s
         'import-group
         'import-keys))))))
(define import-group-imports437
  (|#%name| import-group-imports (record-accessor struct:import-group 5)))
(define import-group-imports
  (|#%name|
   import-group-imports
   (lambda (s)
     (if (import-group?430 s)
       (import-group-imports437 s)
       ($value
        (impersonate-ref
         import-group-imports437
         struct:import-group
         5
         s
         'import-group
         'imports))))))
(define set-import-group-knowns/proc!438
  (|#%name|
   set-import-group-knowns/proc!
   (record-mutator struct:import-group 2)))
(define set-import-group-knowns/proc!
  (|#%name|
   set-import-group-knowns/proc!
   (lambda (s v)
     (if (import-group?430 s)
       (set-import-group-knowns/proc!438 s v)
       ($value
        (impersonate-set!
         set-import-group-knowns/proc!438
         struct:import-group
         2
         2
         s
         v
         'import-group
         'knowns/proc))))))
(define set-import-group-converter!439
  (|#%name|
   set-import-group-converter!
   (record-mutator struct:import-group 3)))
(define set-import-group-converter!
  (|#%name|
   set-import-group-converter!
   (lambda (s v)
     (if (import-group?430 s)
       (set-import-group-converter!439 s v)
       ($value
        (impersonate-set!
         set-import-group-converter!439
         struct:import-group
         3
         3
         s
         v
         'import-group
         'converter))))))
(define set-import-group-import-keys!440
  (|#%name|
   set-import-group-import-keys!
   (record-mutator struct:import-group 4)))
(define set-import-group-import-keys!
  (|#%name|
   set-import-group-import-keys!
   (lambda (s v)
     (if (import-group?430 s)
       (set-import-group-import-keys!440 s v)
       ($value
        (impersonate-set!
         set-import-group-import-keys!440
         struct:import-group
         4
         4
         s
         v
         'import-group
         'import-keys))))))
(define set-import-group-imports!441
  (|#%name| set-import-group-imports! (record-mutator struct:import-group 5)))
(define set-import-group-imports!
  (|#%name|
   set-import-group-imports!
   (lambda (s v)
     (if (import-group?430 s)
       (set-import-group-imports!441 s v)
       ($value
        (impersonate-set!
         set-import-group-imports!441
         struct:import-group
         5
         5
         s
         v
         'import-group
         'imports))))))
(define effect442
  (begin
    (register-struct-constructor! import-group2.1)
    (register-struct-predicate! import-group?)
    (register-struct-field-accessor! import-group-index struct:import-group 0)
    (register-struct-field-accessor! import-group-key struct:import-group 1)
    (register-struct-field-accessor!
     import-group-knowns/proc
     struct:import-group
     2)
    (register-struct-field-accessor!
     import-group-converter
     struct:import-group
     3)
    (register-struct-field-accessor!
     import-group-import-keys
     struct:import-group
     4)
    (register-struct-field-accessor!
     import-group-imports
     struct:import-group
     5)
    (register-struct-field-mutator!
     set-import-group-knowns/proc!
     struct:import-group
     2)
    (register-struct-field-mutator!
     set-import-group-converter!
     struct:import-group
     3)
    (register-struct-field-mutator!
     set-import-group-import-keys!
     struct:import-group
     4)
    (register-struct-field-mutator!
     set-import-group-imports!
     struct:import-group
     5)
    (void)))
(define import-group-knowns
  (lambda (grp_0)
    (let ((knowns/proc_0 (import-group-knowns/proc grp_0)))
      (if (procedure? knowns/proc_0)
        (call-with-values
         (lambda () (|#%app| knowns/proc_0 (import-group-key grp_0)))
         (case-lambda
          ((knowns_0 converter_0 import-keys_0)
           (let ((knowns-or-empty_0 (if knowns_0 knowns_0 (hasheq))))
             (begin
               (set-import-group-knowns/proc! grp_0 knowns-or-empty_0)
               (set-import-group-converter! grp_0 converter_0)
               (set-import-group-import-keys! grp_0 import-keys_0)
               knowns-or-empty_0)))
          (args (raise-binding-result-arity-error 3 args))))
        knowns/proc_0))))
(define import-group-lookup-ready?
  (lambda (grp_0)
    (let ((knowns/proc_0 (import-group-knowns/proc grp_0)))
      (not (procedure? knowns/proc_0)))))
(define import-group-lookup
  (lambda (g_0 id_0)
    (let ((v_0 (hash-ref (import-group-knowns g_0) id_0 #f)))
      (if v_0
        (let ((converter_0 (import-group-converter g_0)))
          (if converter_0 (|#%app| converter_0 v_0) v_0))
        v_0))))
(define import-lookup
  (lambda (im_0)
    (let ((app_0 (import-grp im_0)))
      (import-group-lookup app_0 (import-ext-id im_0)))))
(define hash-ref-either
  (lambda (knowns_0 imports_0 key_0)
    (let ((or-part_0 (hash-ref knowns_0 key_0 #f)))
      (if or-part_0
        or-part_0
        (let ((im_0 (hash-ref imports_0 key_0 #f)))
          (if im_0 (import-lookup im_0) #f))))))
(define make-add-import!
  (lambda (imports_0 grps_0 get-import-knowns_0 add-group!_0)
    (let ((next-index_0 (length grps_0)))
      (lambda (im_0 ext-id_0 index_0)
        (let ((grp_0 (import-grp im_0)))
          (if index_0
            (begin
              (import-group-knowns grp_0)
              (let ((import-keys_0 (import-group-import-keys grp_0)))
                (let ((key_0
                       (if import-keys_0
                         (vector-ref import-keys_0 index_0)
                         #f)))
                  (if key_0
                    (let ((from-grp_0
                           (find-or-add-import-group!
                            grps_0
                            key_0
                            get-import-knowns_0
                            add-group!_0
                            next-index_0
                            (lambda ()
                              (set! next-index_0 (add1 next-index_0))))))
                      (if from-grp_0
                        (find-or-add-import-from-group!
                         from-grp_0
                         ext-id_0
                         imports_0)
                        #f))
                    #f))))
            (find-or-add-import-from-group! grp_0 ext-id_0 imports_0)))))))
(define find-or-add-import-from-group!
  (lambda (grp_0 ext-id_0 imports_0)
    (let ((or-part_0
           (let ((lst_0 (import-group-imports grp_0)))
             (begin
               (letrec*
                ((for-loop_0
                  (|#%name|
                   for-loop
                   (lambda (result_0 lst_1)
                     (begin
                       (if (pair? lst_1)
                         (let ((im_0 (unsafe-car lst_1)))
                           (let ((rest_0 (unsafe-cdr lst_1)))
                             (let ((result_1
                                    (let ((result_1
                                           (if (eq?
                                                ext-id_0
                                                (import-ext-id im_0))
                                             (import-int-id im_0)
                                             #f)))
                                      (values result_1))))
                               (if (if (not (let ((x_0 (list im_0))) result_1))
                                     #t
                                     #f)
                                 (for-loop_0 result_1 rest_0)
                                 result_1))))
                         result_0))))))
                (for-loop_0 #f lst_0))))))
      (if or-part_0
        or-part_0
        (let ((id_0 (deterministic-gensym ext-id_0)))
          (let ((int-id_0 (deterministic-gensym ext-id_0)))
            (let ((id_1 id_0))
              (let ((im_0 (import1.1 grp_0 id_1 int-id_0 ext-id_0)))
                (begin
                  (set-import-group-imports!
                   grp_0
                   (cons im_0 (import-group-imports grp_0)))
                  (hash-set! imports_0 int-id_0 im_0)
                  int-id_0)))))))))
(define find-or-add-import-group!
  (lambda (grps_0
           key_0
           get-import-knowns_0
           add-group!_0
           next-index_0
           inc-index!_0)
    (let ((or-part_0
           (begin
             (letrec*
              ((for-loop_0
                (|#%name|
                 for-loop
                 (lambda (result_0 lst_0)
                   (begin
                     (if (pair? lst_0)
                       (let ((grp_0 (unsafe-car lst_0)))
                         (let ((rest_0 (unsafe-cdr lst_0)))
                           (let ((result_1
                                  (let ((result_1
                                         (if (eq?
                                              key_0
                                              (import-group-key grp_0))
                                           grp_0
                                           #f)))
                                    (values result_1))))
                             (if (if (not (let ((x_0 (list grp_0))) result_1))
                                   #t
                                   #f)
                               (for-loop_0 result_1 rest_0)
                               result_1))))
                       result_0))))))
              (for-loop_0 #f grps_0)))))
      (if or-part_0
        or-part_0
        (let ((grp_0
               (import-group2.1
                next-index_0
                key_0
                get-import-knowns_0
                #f
                #f
                '())))
          (begin
            (|#%app| inc-index!_0)
            (|#%app| add-group!_0 grp_0)
            grp_0))))))
(define struct:export (make-record-type-descriptor* 'export #f #f #f #f 2 3))
(define effect454
  (struct-type-install-properties!
   struct:export
   'export
   2
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'export))
(define export1.1
  (|#%name|
   export
   (record-constructor
    (make-record-constructor-descriptor struct:export #f #f))))
(define export?453 (|#%name| export? (record-predicate struct:export)))
(define export?
  (|#%name|
   export?
   (lambda (v)
     (if (export?453 v)
       #t
       ($value (if (impersonator? v) (export?453 (impersonator-val v)) #f))))))
(define export-id455 (|#%name| export-id (record-accessor struct:export 0)))
(define export-id
  (|#%name|
   export-id
   (lambda (s)
     (if (export?453 s)
       (export-id455 s)
       ($value
        (impersonate-ref export-id455 struct:export 0 s 'export 'id))))))
(define export-ext-id456
  (|#%name| export-ext-id (record-accessor struct:export 1)))
(define export-ext-id
  (|#%name|
   export-ext-id
   (lambda (s)
     (if (export?453 s)
       (export-ext-id456 s)
       ($value
        (impersonate-ref
         export-ext-id456
         struct:export
         1
         s
         'export
         'ext-id))))))
(define effect457
  (begin
    (register-struct-constructor! export1.1)
    (register-struct-predicate! export?)
    (register-struct-field-accessor! export-id struct:export 0)
    (register-struct-field-accessor! export-ext-id struct:export 1)
    (void)))
(define struct:too-early
  (make-record-type-descriptor* 'too-early #f #f #f #f 2 3))
(define effect459
  (struct-type-install-properties!
   struct:too-early
   'too-early
   2
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'too-early))
(define too-early1.1
  (|#%name|
   too-early
   (record-constructor
    (make-record-constructor-descriptor struct:too-early #f #f))))
(define too-early?458
  (|#%name| too-early? (record-predicate struct:too-early)))
(define too-early?
  (|#%name|
   too-early?
   (lambda (v)
     (if (too-early?458 v)
       #t
       ($value
        (if (impersonator? v) (too-early?458 (impersonator-val v)) #f))))))
(define too-early-name460
  (|#%name| too-early-name (record-accessor struct:too-early 0)))
(define too-early-name
  (|#%name|
   too-early-name
   (lambda (s)
     (if (too-early?458 s)
       (too-early-name460 s)
       ($value
        (impersonate-ref
         too-early-name460
         struct:too-early
         0
         s
         'too-early
         'name))))))
(define too-early-set!ed?461
  (|#%name| too-early-set!ed? (record-accessor struct:too-early 1)))
(define too-early-set!ed?
  (|#%name|
   too-early-set!ed?
   (lambda (s)
     (if (too-early?458 s)
       (too-early-set!ed?461 s)
       ($value
        (impersonate-ref
         too-early-set!ed?461
         struct:too-early
         1
         s
         'too-early
         'set!ed?))))))
(define effect462
  (begin
    (register-struct-constructor! too-early1.1)
    (register-struct-predicate! too-early?)
    (register-struct-field-accessor! too-early-name struct:too-early 0)
    (register-struct-field-accessor! too-early-set!ed? struct:too-early 1)
    (void)))
(define delayed-mutated-state? (lambda (v_0) (procedure? v_0)))
(define simple-mutated-state?
  (lambda (v_0)
    (let ((or-part_0 (not v_0)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (procedure? v_0)))
          (if or-part_1 or-part_1 (eq? v_0 'too-early/ready)))))))
(define not-ready-mutated-state? (lambda (v_0) (eq? v_0 'not-ready)))
(define too-early-mutated-state?
  (lambda (v_0)
    (let ((or-part_0 (eq? v_0 'too-early)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (eq? v_0 'set!ed-too-early)))
          (if or-part_1
            or-part_1
            (let ((or-part_2 (eq? v_0 'undefined)))
              (if or-part_2 or-part_2 (too-early? v_0)))))))))
(define too-early-mutated-state-name
  (lambda (v_0 default-sym_0)
    (if (too-early? v_0) (too-early-name v_0) default-sym_0)))
(define needs-letrec-convert-mutated-state?
  (lambda (v_0)
    (let ((or-part_0 (too-early? v_0)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (eq? v_0 'too-early)))
          (if or-part_1
            or-part_1
            (let ((or-part_2 (eq? v_0 'too-early/ready)))
              (if or-part_2 or-part_2 (eq? v_0 'implicitly-set!ed)))))))))
(define via-variable-mutated-state?
  (lambda (v_0)
    (let ((or-part_0 (eq? v_0 'set!ed)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (eq? v_0 'undefined)))
          (if or-part_1
            or-part_1
            (let ((or-part_2 (eq? v_0 'too-early)))
              (if or-part_2 or-part_2 (eq? v_0 'set!ed-too-early)))))))))
(define set!ed-mutated-state?
  (lambda (v_0)
    (let ((or-part_0 (eq? v_0 'set!ed)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (eq? v_0 'set!ed-too-early)))
          (if or-part_1
            or-part_1
            (if (too-early? v_0) (too-early-set!ed? v_0) #f)))))))
(define state->set!ed-state
  (lambda (v_0)
    (if (too-early? v_0)
      (if (too-early? v_0)
        (too-early1.1 (too-early-name v_0) #t)
        (raise-argument-error 'struct-copy "too-early?" v_0))
      (if (eq? v_0 'not-ready)
        'set!ed-too-early
        (if (too-early-mutated-state? v_0)
          'set!ed-too-early
          (if (eq? v_0 'implicitly-set!ed) v_0 'set!ed))))))
(define simple?.1
  (letrec ((returns_0
            (|#%name|
             returns
             (lambda (result-arity_0 n_0)
               (begin
                 (let ((or-part_0 (not result-arity_0)))
                   (if or-part_0 or-part_0 (eqv? n_0 result-arity_0)))))))
           (simple?_0
            (|#%name|
             simple?
             (lambda (imports8_0
                      knowns7_0
                      mutated9_0
                      prim-knowns6_0
                      pure?1_0
                      simples10_0
                      e_0
                      result-arity_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap e_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'lambda hd_0) #t #f)
                     (returns_0 result-arity_0 1)
                     (if (if (eq? 'case-lambda hd_0) #t #f)
                       (returns_0 result-arity_0 1)
                       (if (if (eq? 'quote hd_0) #t #f)
                         (returns_0 result-arity_0 1)
                         (if (if (eq? '|#%variable-reference| hd_0) #t #f)
                           (returns_0 result-arity_0 1)
                           (if (if (eq? 'let-values hd_0)
                                 (let ((a_0 (cdr (unwrap e_0))))
                                   (let ((p_0 (unwrap a_0)))
                                     (if (pair? p_0)
                                       (if (let ((a_1 (car p_0)))
                                             (if (wrap-list? a_1)
                                               (begin
                                                 (letrec*
                                                  ((for-loop_0
                                                    (|#%name|
                                                     for-loop
                                                     (lambda (result_0 lst_0)
                                                       (begin
                                                         (if (not
                                                              (null?
                                                               (unwrap lst_0)))
                                                           (let ((v_0
                                                                  (if (pair?
                                                                       (unwrap
                                                                        lst_0))
                                                                    (wrap-car
                                                                     lst_0)
                                                                    lst_0)))
                                                             (let ((rest_0
                                                                    (if (pair?
                                                                         (unwrap
                                                                          lst_0))
                                                                      (wrap-cdr
                                                                       lst_0)
                                                                      null)))
                                                               (let ((v_1 v_0))
                                                                 (let ((result_1
                                                                        (let ((result_1
                                                                               (let ((p_1
                                                                                      (unwrap
                                                                                       v_1)))
                                                                                 (if (pair?
                                                                                      p_1)
                                                                                   (let ((a_2
                                                                                          (cdr
                                                                                           p_1)))
                                                                                     (let ((p_2
                                                                                            (unwrap
                                                                                             a_2)))
                                                                                       (if (pair?
                                                                                            p_2)
                                                                                         (let ((a_3
                                                                                                (cdr
                                                                                                 p_2)))
                                                                                           (let ((app_0
                                                                                                  (unwrap
                                                                                                   '())))
                                                                                             (eq?
                                                                                              app_0
                                                                                              (unwrap
                                                                                               a_3))))
                                                                                         #f)))
                                                                                   #f))))
                                                                          (values
                                                                           result_1))))
                                                                   (if (if (not
                                                                            (let ((x_0
                                                                                   (list
                                                                                    v_1)))
                                                                              (not
                                                                               result_1)))
                                                                         #t
                                                                         #f)
                                                                     (for-loop_0
                                                                      result_1
                                                                      rest_0)
                                                                     result_1)))))
                                                           result_0))))))
                                                  (for-loop_0 #t a_1)))
                                               #f))
                                         (let ((a_1 (cdr p_0)))
                                           (let ((p_1 (unwrap a_1)))
                                             (if (pair? p_1)
                                               (let ((a_2 (cdr p_1)))
                                                 (let ((app_0 (unwrap '())))
                                                   (eq? app_0 (unwrap a_2))))
                                               #f)))
                                         #f)
                                       #f)))
                                 #f)
                             (call-with-values
                              (lambda ()
                                (let ((d_0 (cdr (unwrap e_0))))
                                  (let ((p_0 (unwrap d_0)))
                                    (call-with-values
                                     (lambda ()
                                       (let ((a_0 (car p_0)))
                                         (call-with-values
                                          (lambda ()
                                            (begin
                                              (letrec*
                                               ((for-loop_0
                                                 (|#%name|
                                                  for-loop
                                                  (lambda (idss_0 rhss_0 lst_0)
                                                    (begin
                                                      (if (not
                                                           (null?
                                                            (unwrap lst_0)))
                                                        (let ((v_0
                                                               (if (pair?
                                                                    (unwrap
                                                                     lst_0))
                                                                 (wrap-car
                                                                  lst_0)
                                                                 lst_0)))
                                                          (let ((rest_0
                                                                 (if (pair?
                                                                      (unwrap
                                                                       lst_0))
                                                                   (wrap-cdr
                                                                    lst_0)
                                                                   null)))
                                                            (let ((v_1 v_0))
                                                              (call-with-values
                                                               (lambda ()
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (let ((p_1
                                                                              (unwrap
                                                                               v_1)))
                                                                         (let ((idss_1
                                                                                (let ((a_1
                                                                                       (car
                                                                                        p_1)))
                                                                                  a_1)))
                                                                           (let ((rhss_1
                                                                                  (let ((d_1
                                                                                         (cdr
                                                                                          p_1)))
                                                                                    (let ((a_1
                                                                                           (car
                                                                                            (unwrap
                                                                                             d_1))))
                                                                                      a_1))))
                                                                             (let ((idss_2
                                                                                    idss_1))
                                                                               (values
                                                                                idss_2
                                                                                rhss_1))))))
                                                                     (case-lambda
                                                                      ((idss12_0
                                                                        rhss13_0)
                                                                       (values
                                                                        (cons
                                                                         idss12_0
                                                                         idss_0)
                                                                        (cons
                                                                         rhss13_0
                                                                         rhss_0)))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args)))))
                                                                  (case-lambda
                                                                   ((idss_1
                                                                     rhss_1)
                                                                    (values
                                                                     idss_1
                                                                     rhss_1))
                                                                   (args
                                                                    (raise-binding-result-arity-error
                                                                     2
                                                                     args)))))
                                                               (case-lambda
                                                                ((idss_1
                                                                  rhss_1)
                                                                 (for-loop_0
                                                                  idss_1
                                                                  rhss_1
                                                                  rest_0))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))))
                                                        (values
                                                         idss_0
                                                         rhss_0)))))))
                                               (for-loop_0 null null a_0))))
                                          (case-lambda
                                           ((idss_0 rhss_0)
                                            (let ((app_0 (reverse$1 idss_0)))
                                              (values
                                               app_0
                                               (reverse$1 rhss_0))))
                                           (args
                                            (raise-binding-result-arity-error
                                             2
                                             args))))))
                                     (case-lambda
                                      ((idss_0 rhss_0)
                                       (let ((body_0
                                              (let ((d_1 (cdr p_0)))
                                                (let ((a_0 (car (unwrap d_1))))
                                                  a_0))))
                                         (let ((idss_1 idss_0) (rhss_1 rhss_0))
                                           (values idss_1 rhss_1 body_0))))
                                      (args
                                       (raise-binding-result-arity-error
                                        2
                                        args)))))))
                              (case-lambda
                               ((idss_0 rhss_0 body_0)
                                (let ((c_0
                                       (hash-ref
                                        simples10_0
                                        e_0
                                        '#(unknown unknown 1))))
                                  (let ((r_0
                                         (vector-ref c_0 (if pure?1_0 0 1))))
                                    (let ((arity-match?_0
                                           (eqv?
                                            result-arity_0
                                            (vector-ref c_0 2))))
                                      (if (let ((or-part_0 (eq? 'unknown r_0)))
                                            (if or-part_0
                                              or-part_0
                                              (not arity-match?_0)))
                                        (let ((r_1
                                               (if (begin
                                                     (letrec*
                                                      ((for-loop_0
                                                        (|#%name|
                                                         for-loop
                                                         (lambda (result_0
                                                                  lst_0
                                                                  lst_1)
                                                           (begin
                                                             (if (if (pair?
                                                                      lst_0)
                                                                   (pair?
                                                                    lst_1)
                                                                   #f)
                                                               (let ((ids_0
                                                                      (unsafe-car
                                                                       lst_0)))
                                                                 (let ((rest_0
                                                                        (unsafe-cdr
                                                                         lst_0)))
                                                                   (let ((rhs_0
                                                                          (unsafe-car
                                                                           lst_1)))
                                                                     (let ((rest_1
                                                                            (unsafe-cdr
                                                                             lst_1)))
                                                                       (let ((result_1
                                                                              (let ((result_1
                                                                                     (simple?_0
                                                                                      imports8_0
                                                                                      knowns7_0
                                                                                      mutated9_0
                                                                                      prim-knowns6_0
                                                                                      pure?1_0
                                                                                      simples10_0
                                                                                      rhs_0
                                                                                      (length
                                                                                       ids_0))))
                                                                                (values
                                                                                 result_1))))
                                                                         (if (if (not
                                                                                  (let ((x_0
                                                                                         (list
                                                                                          ids_0)))
                                                                                    (not
                                                                                     result_1)))
                                                                               (if (not
                                                                                    (let ((x_0
                                                                                           (list
                                                                                            rhs_0)))
                                                                                      (not
                                                                                       result_1)))
                                                                                 #t
                                                                                 #f)
                                                                               #f)
                                                                           (for-loop_0
                                                                            result_1
                                                                            rest_0
                                                                            rest_1)
                                                                           result_1))))))
                                                               result_0))))))
                                                      (for-loop_0
                                                       #t
                                                       idss_0
                                                       rhss_0)))
                                                 (simple?_0
                                                  imports8_0
                                                  knowns7_0
                                                  mutated9_0
                                                  prim-knowns6_0
                                                  pure?1_0
                                                  simples10_0
                                                  body_0
                                                  result-arity_0)
                                                 #f)))
                                          (begin
                                            (hash-set!
                                             simples10_0
                                             e_0
                                             (if pure?1_0
                                               (vector
                                                r_1
                                                (if arity-match?_0
                                                  (vector-ref c_0 1)
                                                  'unknown)
                                                result-arity_0)
                                               (vector
                                                (if arity-match?_0
                                                  (vector-ref c_0 0)
                                                  'unknown)
                                                r_1
                                                result-arity_0)))
                                            r_1))
                                        r_0)))))
                               (args
                                (raise-binding-result-arity-error 3 args))))
                             (if (if (eq? 'let hd_0)
                                   (let ((a_0 (cdr (unwrap e_0))))
                                     (let ((p_0 (unwrap a_0)))
                                       (if (pair? p_0)
                                         (if (let ((a_1 (car p_0)))
                                               (if (wrap-list? a_1)
                                                 (begin
                                                   (letrec*
                                                    ((for-loop_0
                                                      (|#%name|
                                                       for-loop
                                                       (lambda (result_0 lst_0)
                                                         (begin
                                                           (if (not
                                                                (null?
                                                                 (unwrap
                                                                  lst_0)))
                                                             (let ((v_0
                                                                    (if (pair?
                                                                         (unwrap
                                                                          lst_0))
                                                                      (wrap-car
                                                                       lst_0)
                                                                      lst_0)))
                                                               (let ((rest_0
                                                                      (if (pair?
                                                                           (unwrap
                                                                            lst_0))
                                                                        (wrap-cdr
                                                                         lst_0)
                                                                        null)))
                                                                 (let ((v_1
                                                                        v_0))
                                                                   (let ((result_1
                                                                          (let ((result_1
                                                                                 (let ((p_1
                                                                                        (unwrap
                                                                                         v_1)))
                                                                                   (if (pair?
                                                                                        p_1)
                                                                                     (let ((a_2
                                                                                            (cdr
                                                                                             p_1)))
                                                                                       (let ((p_2
                                                                                              (unwrap
                                                                                               a_2)))
                                                                                         (if (pair?
                                                                                              p_2)
                                                                                           (let ((a_3
                                                                                                  (cdr
                                                                                                   p_2)))
                                                                                             (let ((app_0
                                                                                                    (unwrap
                                                                                                     '())))
                                                                                               (eq?
                                                                                                app_0
                                                                                                (unwrap
                                                                                                 a_3))))
                                                                                           #f)))
                                                                                     #f))))
                                                                            (values
                                                                             result_1))))
                                                                     (if (if (not
                                                                              (let ((x_0
                                                                                     (list
                                                                                      v_1)))
                                                                                (not
                                                                                 result_1)))
                                                                           #t
                                                                           #f)
                                                                       (for-loop_0
                                                                        result_1
                                                                        rest_0)
                                                                       result_1)))))
                                                             result_0))))))
                                                    (for-loop_0 #t a_1)))
                                                 #f))
                                           (let ((a_1 (cdr p_0)))
                                             (let ((p_1 (unwrap a_1)))
                                               (if (pair? p_1)
                                                 (let ((a_2 (cdr p_1)))
                                                   (let ((app_0 (unwrap '())))
                                                     (eq? app_0 (unwrap a_2))))
                                                 #f)))
                                           #f)
                                         #f)))
                                   #f)
                               (call-with-values
                                (lambda ()
                                  (let ((d_0 (cdr (unwrap e_0))))
                                    (let ((p_0 (unwrap d_0)))
                                      (let ((rhss_0
                                             (let ((a_0 (car p_0)))
                                               (let ((rhss_0
                                                      (begin
                                                        (letrec*
                                                         ((for-loop_0
                                                           (|#%name|
                                                            for-loop
                                                            (lambda (rhss_0
                                                                     lst_0)
                                                              (begin
                                                                (if (not
                                                                     (null?
                                                                      (unwrap
                                                                       lst_0)))
                                                                  (let ((v_0
                                                                         (if (pair?
                                                                              (unwrap
                                                                               lst_0))
                                                                           (wrap-car
                                                                            lst_0)
                                                                           lst_0)))
                                                                    (let ((rest_0
                                                                           (if (pair?
                                                                                (unwrap
                                                                                 lst_0))
                                                                             (wrap-cdr
                                                                              lst_0)
                                                                             null)))
                                                                      (let ((v_1
                                                                             v_0))
                                                                        (let ((rhss_1
                                                                               (let ((rhss_1
                                                                                      (let ((rhss14_0
                                                                                             (let ((d_1
                                                                                                    (cdr
                                                                                                     (unwrap
                                                                                                      v_1))))
                                                                                               (let ((a_1
                                                                                                      (car
                                                                                                       (unwrap
                                                                                                        d_1))))
                                                                                                 a_1))))
                                                                                        (cons
                                                                                         rhss14_0
                                                                                         rhss_0))))
                                                                                 (values
                                                                                  rhss_1))))
                                                                          (for-loop_0
                                                                           rhss_1
                                                                           rest_0)))))
                                                                  rhss_0))))))
                                                         (for-loop_0
                                                          null
                                                          a_0)))))
                                                 (reverse$1 rhss_0)))))
                                        (let ((body_0
                                               (let ((d_1 (cdr p_0)))
                                                 (let ((a_0
                                                        (car (unwrap d_1))))
                                                   a_0))))
                                          (let ((rhss_1 rhss_0))
                                            (values rhss_1 body_0)))))))
                                (case-lambda
                                 ((rhss_0 body_0)
                                  (let ((c_0
                                         (hash-ref
                                          simples10_0
                                          e_0
                                          '#(unknown unknown 1))))
                                    (let ((r_0
                                           (vector-ref c_0 (if pure?1_0 0 1))))
                                      (let ((arity-match?_0
                                             (eqv?
                                              result-arity_0
                                              (vector-ref c_0 2))))
                                        (if (let ((or-part_0
                                                   (eq? 'unknown r_0)))
                                              (if or-part_0
                                                or-part_0
                                                (not arity-match?_0)))
                                          (let ((r_1
                                                 (if (begin
                                                       (letrec*
                                                        ((for-loop_0
                                                          (|#%name|
                                                           for-loop
                                                           (lambda (result_0
                                                                    lst_0)
                                                             (begin
                                                               (if (pair?
                                                                    lst_0)
                                                                 (let ((rhs_0
                                                                        (unsafe-car
                                                                         lst_0)))
                                                                   (let ((rest_0
                                                                          (unsafe-cdr
                                                                           lst_0)))
                                                                     (let ((result_1
                                                                            (let ((result_1
                                                                                   (simple?_0
                                                                                    imports8_0
                                                                                    knowns7_0
                                                                                    mutated9_0
                                                                                    prim-knowns6_0
                                                                                    pure?1_0
                                                                                    simples10_0
                                                                                    rhs_0
                                                                                    1)))
                                                                              (values
                                                                               result_1))))
                                                                       (if (if (not
                                                                                (let ((x_0
                                                                                       (list
                                                                                        rhs_0)))
                                                                                  (not
                                                                                   result_1)))
                                                                             #t
                                                                             #f)
                                                                         (for-loop_0
                                                                          result_1
                                                                          rest_0)
                                                                         result_1))))
                                                                 result_0))))))
                                                        (for-loop_0
                                                         #t
                                                         rhss_0)))
                                                   (simple?_0
                                                    imports8_0
                                                    knowns7_0
                                                    mutated9_0
                                                    prim-knowns6_0
                                                    pure?1_0
                                                    simples10_0
                                                    body_0
                                                    result-arity_0)
                                                   #f)))
                                            (begin
                                              (hash-set!
                                               simples10_0
                                               e_0
                                               (if pure?1_0
                                                 (vector
                                                  r_1
                                                  (if arity-match?_0
                                                    (vector-ref c_0 1)
                                                    'unknown)
                                                  result-arity_0)
                                                 (vector
                                                  (if arity-match?_0
                                                    (vector-ref c_0 0)
                                                    'unknown)
                                                  r_1
                                                  result-arity_0)))
                                              r_1))
                                          r_0)))))
                                 (args
                                  (raise-binding-result-arity-error 2 args))))
                               (if (if (eq? 'letrec-values hd_0)
                                     (let ((a_0 (cdr (unwrap e_0))))
                                       (let ((p_0 (unwrap a_0)))
                                         (if (pair? p_0)
                                           (if (let ((a_1 (car p_0)))
                                                 (if (wrap-list? a_1)
                                                   (begin
                                                     (letrec*
                                                      ((for-loop_0
                                                        (|#%name|
                                                         for-loop
                                                         (lambda (result_0
                                                                  lst_0)
                                                           (begin
                                                             (if (not
                                                                  (null?
                                                                   (unwrap
                                                                    lst_0)))
                                                               (let ((v_0
                                                                      (if (pair?
                                                                           (unwrap
                                                                            lst_0))
                                                                        (wrap-car
                                                                         lst_0)
                                                                        lst_0)))
                                                                 (let ((rest_0
                                                                        (if (pair?
                                                                             (unwrap
                                                                              lst_0))
                                                                          (wrap-cdr
                                                                           lst_0)
                                                                          null)))
                                                                   (let ((v_1
                                                                          v_0))
                                                                     (let ((result_1
                                                                            (let ((result_1
                                                                                   (let ((p_1
                                                                                          (unwrap
                                                                                           v_1)))
                                                                                     (if (pair?
                                                                                          p_1)
                                                                                       (if (let ((a_2
                                                                                                  (car
                                                                                                   p_1)))
                                                                                             (wrap-list?
                                                                                              a_2))
                                                                                         (let ((a_2
                                                                                                (cdr
                                                                                                 p_1)))
                                                                                           (let ((p_2
                                                                                                  (unwrap
                                                                                                   a_2)))
                                                                                             (if (pair?
                                                                                                  p_2)
                                                                                               (let ((a_3
                                                                                                      (cdr
                                                                                                       p_2)))
                                                                                                 (let ((app_0
                                                                                                        (unwrap
                                                                                                         '())))
                                                                                                   (eq?
                                                                                                    app_0
                                                                                                    (unwrap
                                                                                                     a_3))))
                                                                                               #f)))
                                                                                         #f)
                                                                                       #f))))
                                                                              (values
                                                                               result_1))))
                                                                       (if (if (not
                                                                                (let ((x_0
                                                                                       (list
                                                                                        v_1)))
                                                                                  (not
                                                                                   result_1)))
                                                                             #t
                                                                             #f)
                                                                         (for-loop_0
                                                                          result_1
                                                                          rest_0)
                                                                         result_1)))))
                                                               result_0))))))
                                                      (for-loop_0 #t a_1)))
                                                   #f))
                                             (let ((a_1 (cdr p_0)))
                                               (let ((p_1 (unwrap a_1)))
                                                 (if (pair? p_1)
                                                   (let ((a_2 (cdr p_1)))
                                                     (let ((app_0
                                                            (unwrap '())))
                                                       (eq?
                                                        app_0
                                                        (unwrap a_2))))
                                                   #f)))
                                             #f)
                                           #f)))
                                     #f)
                                 (call-with-values
                                  (lambda ()
                                    (let ((d_0 (cdr (unwrap e_0))))
                                      (let ((p_0 (unwrap d_0)))
                                        (call-with-values
                                         (lambda ()
                                           (let ((a_0 (car p_0)))
                                             (call-with-values
                                              (lambda ()
                                                (begin
                                                  (letrec*
                                                   ((for-loop_0
                                                     (|#%name|
                                                      for-loop
                                                      (lambda (idss_0
                                                               rhss_0
                                                               lst_0)
                                                        (begin
                                                          (if (not
                                                               (null?
                                                                (unwrap
                                                                 lst_0)))
                                                            (let ((v_0
                                                                   (if (pair?
                                                                        (unwrap
                                                                         lst_0))
                                                                     (wrap-car
                                                                      lst_0)
                                                                     lst_0)))
                                                              (let ((rest_0
                                                                     (if (pair?
                                                                          (unwrap
                                                                           lst_0))
                                                                       (wrap-cdr
                                                                        lst_0)
                                                                       null)))
                                                                (let ((v_1
                                                                       v_0))
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (call-with-values
                                                                      (lambda ()
                                                                        (call-with-values
                                                                         (lambda ()
                                                                           (let ((p_1
                                                                                  (unwrap
                                                                                   v_1)))
                                                                             (let ((idss_1
                                                                                    (let ((a_1
                                                                                           (car
                                                                                            p_1)))
                                                                                      (unwrap-list
                                                                                       a_1))))
                                                                               (let ((rhss_1
                                                                                      (let ((d_1
                                                                                             (cdr
                                                                                              p_1)))
                                                                                        (let ((a_1
                                                                                               (car
                                                                                                (unwrap
                                                                                                 d_1))))
                                                                                          a_1))))
                                                                                 (let ((idss_2
                                                                                        idss_1))
                                                                                   (values
                                                                                    idss_2
                                                                                    rhss_1))))))
                                                                         (case-lambda
                                                                          ((idss15_0
                                                                            rhss16_0)
                                                                           (values
                                                                            (cons
                                                                             idss15_0
                                                                             idss_0)
                                                                            (cons
                                                                             rhss16_0
                                                                             rhss_0)))
                                                                          (args
                                                                           (raise-binding-result-arity-error
                                                                            2
                                                                            args)))))
                                                                      (case-lambda
                                                                       ((idss_1
                                                                         rhss_1)
                                                                        (values
                                                                         idss_1
                                                                         rhss_1))
                                                                       (args
                                                                        (raise-binding-result-arity-error
                                                                         2
                                                                         args)))))
                                                                   (case-lambda
                                                                    ((idss_1
                                                                      rhss_1)
                                                                     (for-loop_0
                                                                      idss_1
                                                                      rhss_1
                                                                      rest_0))
                                                                    (args
                                                                     (raise-binding-result-arity-error
                                                                      2
                                                                      args)))))))
                                                            (values
                                                             idss_0
                                                             rhss_0)))))))
                                                   (for-loop_0
                                                    null
                                                    null
                                                    a_0))))
                                              (case-lambda
                                               ((idss_0 rhss_0)
                                                (let ((app_0
                                                       (reverse$1 idss_0)))
                                                  (values
                                                   app_0
                                                   (reverse$1 rhss_0))))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args))))))
                                         (case-lambda
                                          ((idss_0 rhss_0)
                                           (let ((body_0
                                                  (let ((d_1 (cdr p_0)))
                                                    (let ((a_0
                                                           (car (unwrap d_1))))
                                                      a_0))))
                                             (let ((idss_1 idss_0)
                                                   (rhss_1 rhss_0))
                                               (values idss_1 rhss_1 body_0))))
                                          (args
                                           (raise-binding-result-arity-error
                                            2
                                            args)))))))
                                  (case-lambda
                                   ((idss_0 rhss_0 body_0)
                                    (let ((c_0
                                           (hash-ref
                                            simples10_0
                                            e_0
                                            '#(unknown unknown 1))))
                                      (let ((r_0
                                             (vector-ref
                                              c_0
                                              (if pure?1_0 0 1))))
                                        (let ((arity-match?_0
                                               (eqv?
                                                result-arity_0
                                                (vector-ref c_0 2))))
                                          (if (let ((or-part_0
                                                     (eq? 'unknown r_0)))
                                                (if or-part_0
                                                  or-part_0
                                                  (not arity-match?_0)))
                                            (let ((r_1
                                                   (if (begin
                                                         (letrec*
                                                          ((for-loop_0
                                                            (|#%name|
                                                             for-loop
                                                             (lambda (result_0
                                                                      lst_0
                                                                      lst_1)
                                                               (begin
                                                                 (if (if (pair?
                                                                          lst_0)
                                                                       (pair?
                                                                        lst_1)
                                                                       #f)
                                                                   (let ((ids_0
                                                                          (unsafe-car
                                                                           lst_0)))
                                                                     (let ((rest_0
                                                                            (unsafe-cdr
                                                                             lst_0)))
                                                                       (let ((rhs_0
                                                                              (unsafe-car
                                                                               lst_1)))
                                                                         (let ((rest_1
                                                                                (unsafe-cdr
                                                                                 lst_1)))
                                                                           (let ((result_1
                                                                                  (let ((result_1
                                                                                         (simple?_0
                                                                                          imports8_0
                                                                                          knowns7_0
                                                                                          mutated9_0
                                                                                          prim-knowns6_0
                                                                                          pure?1_0
                                                                                          simples10_0
                                                                                          rhs_0
                                                                                          (length
                                                                                           ids_0))))
                                                                                    (values
                                                                                     result_1))))
                                                                             (if (if (not
                                                                                      (let ((x_0
                                                                                             (list
                                                                                              ids_0)))
                                                                                        (not
                                                                                         result_1)))
                                                                                   (if (not
                                                                                        (let ((x_0
                                                                                               (list
                                                                                                rhs_0)))
                                                                                          (not
                                                                                           result_1)))
                                                                                     #t
                                                                                     #f)
                                                                                   #f)
                                                                               (for-loop_0
                                                                                result_1
                                                                                rest_0
                                                                                rest_1)
                                                                               result_1))))))
                                                                   result_0))))))
                                                          (for-loop_0
                                                           #t
                                                           idss_0
                                                           rhss_0)))
                                                     (simple?_0
                                                      imports8_0
                                                      knowns7_0
                                                      mutated9_0
                                                      prim-knowns6_0
                                                      pure?1_0
                                                      simples10_0
                                                      body_0
                                                      result-arity_0)
                                                     #f)))
                                              (begin
                                                (hash-set!
                                                 simples10_0
                                                 e_0
                                                 (if pure?1_0
                                                   (vector
                                                    r_1
                                                    (if arity-match?_0
                                                      (vector-ref c_0 1)
                                                      'unknown)
                                                    result-arity_0)
                                                   (vector
                                                    (if arity-match?_0
                                                      (vector-ref c_0 0)
                                                      'unknown)
                                                    r_1
                                                    result-arity_0)))
                                                r_1))
                                            r_0)))))
                                   (args
                                    (raise-binding-result-arity-error
                                     3
                                     args))))
                                 (if (if (eq? 'letrec* hd_0)
                                       (let ((a_0 (cdr (unwrap e_0))))
                                         (let ((p_0 (unwrap a_0)))
                                           (if (pair? p_0)
                                             (if (let ((a_1 (car p_0)))
                                                   (if (wrap-list? a_1)
                                                     (begin
                                                       (letrec*
                                                        ((for-loop_0
                                                          (|#%name|
                                                           for-loop
                                                           (lambda (result_0
                                                                    lst_0)
                                                             (begin
                                                               (if (not
                                                                    (null?
                                                                     (unwrap
                                                                      lst_0)))
                                                                 (let ((v_0
                                                                        (if (pair?
                                                                             (unwrap
                                                                              lst_0))
                                                                          (wrap-car
                                                                           lst_0)
                                                                          lst_0)))
                                                                   (let ((rest_0
                                                                          (if (pair?
                                                                               (unwrap
                                                                                lst_0))
                                                                            (wrap-cdr
                                                                             lst_0)
                                                                            null)))
                                                                     (let ((v_1
                                                                            v_0))
                                                                       (let ((result_1
                                                                              (let ((result_1
                                                                                     (let ((p_1
                                                                                            (unwrap
                                                                                             v_1)))
                                                                                       (if (pair?
                                                                                            p_1)
                                                                                         (let ((a_2
                                                                                                (cdr
                                                                                                 p_1)))
                                                                                           (let ((p_2
                                                                                                  (unwrap
                                                                                                   a_2)))
                                                                                             (if (pair?
                                                                                                  p_2)
                                                                                               (let ((a_3
                                                                                                      (cdr
                                                                                                       p_2)))
                                                                                                 (let ((app_0
                                                                                                        (unwrap
                                                                                                         '())))
                                                                                                   (eq?
                                                                                                    app_0
                                                                                                    (unwrap
                                                                                                     a_3))))
                                                                                               #f)))
                                                                                         #f))))
                                                                                (values
                                                                                 result_1))))
                                                                         (if (if (not
                                                                                  (let ((x_0
                                                                                         (list
                                                                                          v_1)))
                                                                                    (not
                                                                                     result_1)))
                                                                               #t
                                                                               #f)
                                                                           (for-loop_0
                                                                            result_1
                                                                            rest_0)
                                                                           result_1)))))
                                                                 result_0))))))
                                                        (for-loop_0 #t a_1)))
                                                     #f))
                                               (let ((a_1 (cdr p_0)))
                                                 (let ((p_1 (unwrap a_1)))
                                                   (if (pair? p_1)
                                                     (let ((a_2 (cdr p_1)))
                                                       (let ((app_0
                                                              (unwrap '())))
                                                         (eq?
                                                          app_0
                                                          (unwrap a_2))))
                                                     #f)))
                                               #f)
                                             #f)))
                                       #f)
                                   (call-with-values
                                    (lambda ()
                                      (let ((d_0 (cdr (unwrap e_0))))
                                        (let ((p_0 (unwrap d_0)))
                                          (call-with-values
                                           (lambda ()
                                             (let ((a_0 (car p_0)))
                                               (call-with-values
                                                (lambda ()
                                                  (begin
                                                    (letrec*
                                                     ((for-loop_0
                                                       (|#%name|
                                                        for-loop
                                                        (lambda (ids_0
                                                                 rhss_0
                                                                 lst_0)
                                                          (begin
                                                            (if (not
                                                                 (null?
                                                                  (unwrap
                                                                   lst_0)))
                                                              (let ((v_0
                                                                     (if (pair?
                                                                          (unwrap
                                                                           lst_0))
                                                                       (wrap-car
                                                                        lst_0)
                                                                       lst_0)))
                                                                (let ((rest_0
                                                                       (if (pair?
                                                                            (unwrap
                                                                             lst_0))
                                                                         (wrap-cdr
                                                                          lst_0)
                                                                         null)))
                                                                  (let ((v_1
                                                                         v_0))
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (call-with-values
                                                                        (lambda ()
                                                                          (call-with-values
                                                                           (lambda ()
                                                                             (let ((p_1
                                                                                    (unwrap
                                                                                     v_1)))
                                                                               (let ((ids_1
                                                                                      (let ((a_1
                                                                                             (car
                                                                                              p_1)))
                                                                                        a_1)))
                                                                                 (let ((rhss_1
                                                                                        (let ((d_1
                                                                                               (cdr
                                                                                                p_1)))
                                                                                          (let ((a_1
                                                                                                 (car
                                                                                                  (unwrap
                                                                                                   d_1))))
                                                                                            a_1))))
                                                                                   (let ((ids_2
                                                                                          ids_1))
                                                                                     (values
                                                                                      ids_2
                                                                                      rhss_1))))))
                                                                           (case-lambda
                                                                            ((ids17_0
                                                                              rhss18_0)
                                                                             (values
                                                                              (cons
                                                                               ids17_0
                                                                               ids_0)
                                                                              (cons
                                                                               rhss18_0
                                                                               rhss_0)))
                                                                            (args
                                                                             (raise-binding-result-arity-error
                                                                              2
                                                                              args)))))
                                                                        (case-lambda
                                                                         ((ids_1
                                                                           rhss_1)
                                                                          (values
                                                                           ids_1
                                                                           rhss_1))
                                                                         (args
                                                                          (raise-binding-result-arity-error
                                                                           2
                                                                           args)))))
                                                                     (case-lambda
                                                                      ((ids_1
                                                                        rhss_1)
                                                                       (for-loop_0
                                                                        ids_1
                                                                        rhss_1
                                                                        rest_0))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args)))))))
                                                              (values
                                                               ids_0
                                                               rhss_0)))))))
                                                     (for-loop_0
                                                      null
                                                      null
                                                      a_0))))
                                                (case-lambda
                                                 ((ids_0 rhss_0)
                                                  (let ((app_0
                                                         (reverse$1 ids_0)))
                                                    (values
                                                     app_0
                                                     (reverse$1 rhss_0))))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   2
                                                   args))))))
                                           (case-lambda
                                            ((ids_0 rhss_0)
                                             (let ((body_0
                                                    (let ((d_1 (cdr p_0)))
                                                      (let ((a_0
                                                             (car
                                                              (unwrap d_1))))
                                                        a_0))))
                                               (let ((ids_1 ids_0)
                                                     (rhss_1 rhss_0))
                                                 (values
                                                  ids_1
                                                  rhss_1
                                                  body_0))))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args)))))))
                                    (case-lambda
                                     ((ids_0 rhss_0 body_0)
                                      (let ((c_0
                                             (hash-ref
                                              simples10_0
                                              e_0
                                              '#(unknown unknown 1))))
                                        (let ((r_0
                                               (vector-ref
                                                c_0
                                                (if pure?1_0 0 1))))
                                          (let ((arity-match?_0
                                                 (eqv?
                                                  result-arity_0
                                                  (vector-ref c_0 2))))
                                            (if (let ((or-part_0
                                                       (eq? 'unknown r_0)))
                                                  (if or-part_0
                                                    or-part_0
                                                    (not arity-match?_0)))
                                              (let ((r_1
                                                     (if (begin
                                                           (letrec*
                                                            ((for-loop_0
                                                              (|#%name|
                                                               for-loop
                                                               (lambda (result_0
                                                                        lst_0)
                                                                 (begin
                                                                   (if (pair?
                                                                        lst_0)
                                                                     (let ((rhs_0
                                                                            (unsafe-car
                                                                             lst_0)))
                                                                       (let ((rest_0
                                                                              (unsafe-cdr
                                                                               lst_0)))
                                                                         (let ((result_1
                                                                                (let ((result_1
                                                                                       (simple?_0
                                                                                        imports8_0
                                                                                        knowns7_0
                                                                                        mutated9_0
                                                                                        prim-knowns6_0
                                                                                        pure?1_0
                                                                                        simples10_0
                                                                                        rhs_0
                                                                                        1)))
                                                                                  (values
                                                                                   result_1))))
                                                                           (if (if (not
                                                                                    (let ((x_0
                                                                                           (list
                                                                                            rhs_0)))
                                                                                      (not
                                                                                       result_1)))
                                                                                 #t
                                                                                 #f)
                                                                             (for-loop_0
                                                                              result_1
                                                                              rest_0)
                                                                             result_1))))
                                                                     result_0))))))
                                                            (for-loop_0
                                                             #t
                                                             rhss_0)))
                                                       (simple?_0
                                                        imports8_0
                                                        knowns7_0
                                                        mutated9_0
                                                        prim-knowns6_0
                                                        pure?1_0
                                                        simples10_0
                                                        body_0
                                                        result-arity_0)
                                                       #f)))
                                                (begin
                                                  (hash-set!
                                                   simples10_0
                                                   e_0
                                                   (if pure?1_0
                                                     (vector
                                                      r_1
                                                      (if arity-match?_0
                                                        (vector-ref c_0 1)
                                                        'unknown)
                                                      result-arity_0)
                                                     (vector
                                                      (if arity-match?_0
                                                        (vector-ref c_0 0)
                                                        'unknown)
                                                      r_1
                                                      result-arity_0)))
                                                  r_1))
                                              r_0)))))
                                     (args
                                      (raise-binding-result-arity-error
                                       3
                                       args))))
                                   (if (if (if (eq? 'begin hd_0)
                                             (let ((a_0 (cdr (unwrap e_0))))
                                               (wrap-list? a_0))
                                             #f)
                                         (not pure?1_0)
                                         #f)
                                     (let ((es_0
                                            (let ((d_0 (cdr (unwrap e_0))))
                                              (unwrap-list d_0))))
                                       (let ((c_0
                                              (hash-ref
                                               simples10_0
                                               e_0
                                               '#(unknown unknown 1))))
                                         (let ((r_0
                                                (vector-ref
                                                 c_0
                                                 (if pure?1_0 0 1))))
                                           (let ((arity-match?_0
                                                  (eqv?
                                                   result-arity_0
                                                   (vector-ref c_0 2))))
                                             (if (let ((or-part_0
                                                        (eq? 'unknown r_0)))
                                                   (if or-part_0
                                                     or-part_0
                                                     (not arity-match?_0)))
                                               (let ((r_1
                                                      (letrec*
                                                       ((loop_0
                                                         (|#%name|
                                                          loop
                                                          (lambda (es_1)
                                                            (begin
                                                              (if (null?
                                                                   (cdr es_1))
                                                                (simple?_0
                                                                 imports8_0
                                                                 knowns7_0
                                                                 mutated9_0
                                                                 prim-knowns6_0
                                                                 pure?1_0
                                                                 simples10_0
                                                                 (car es_1)
                                                                 result-arity_0)
                                                                (if (simple?_0
                                                                     imports8_0
                                                                     knowns7_0
                                                                     mutated9_0
                                                                     prim-knowns6_0
                                                                     pure?1_0
                                                                     simples10_0
                                                                     (car es_1)
                                                                     #f)
                                                                  (loop_0
                                                                   (cdr es_1))
                                                                  #f)))))))
                                                       (loop_0 es_0))))
                                                 (begin
                                                   (hash-set!
                                                    simples10_0
                                                    e_0
                                                    (if pure?1_0
                                                      (vector
                                                       r_1
                                                       (if arity-match?_0
                                                         (vector-ref c_0 1)
                                                         'unknown)
                                                       result-arity_0)
                                                      (vector
                                                       (if arity-match?_0
                                                         (vector-ref c_0 0)
                                                         'unknown)
                                                       r_1
                                                       result-arity_0)))
                                                   r_1))
                                               r_0)))))
                                     (if (if (eq? 'begin0 hd_0)
                                           (let ((a_0 (cdr (unwrap e_0))))
                                             (let ((p_0 (unwrap a_0)))
                                               (if (pair? p_0)
                                                 (let ((a_1 (cdr p_0)))
                                                   (wrap-list? a_1))
                                                 #f)))
                                           #f)
                                       (call-with-values
                                        (lambda ()
                                          (let ((d_0 (cdr (unwrap e_0))))
                                            (let ((p_0 (unwrap d_0)))
                                              (let ((e0_0
                                                     (let ((a_0 (car p_0)))
                                                       a_0)))
                                                (let ((es_0
                                                       (let ((d_1 (cdr p_0)))
                                                         (unwrap-list d_1))))
                                                  (let ((e0_1 e0_0))
                                                    (values e0_1 es_0)))))))
                                        (case-lambda
                                         ((e0_0 es_0)
                                          (let ((c_0
                                                 (hash-ref
                                                  simples10_0
                                                  e_0
                                                  '#(unknown unknown 1))))
                                            (let ((r_0
                                                   (vector-ref
                                                    c_0
                                                    (if pure?1_0 0 1))))
                                              (let ((arity-match?_0
                                                     (eqv?
                                                      result-arity_0
                                                      (vector-ref c_0 2))))
                                                (if (let ((or-part_0
                                                           (eq? 'unknown r_0)))
                                                      (if or-part_0
                                                        or-part_0
                                                        (not arity-match?_0)))
                                                  (let ((r_1
                                                         (if (simple?_0
                                                              imports8_0
                                                              knowns7_0
                                                              mutated9_0
                                                              prim-knowns6_0
                                                              pure?1_0
                                                              simples10_0
                                                              e0_0
                                                              result-arity_0)
                                                           (begin
                                                             (letrec*
                                                              ((for-loop_0
                                                                (|#%name|
                                                                 for-loop
                                                                 (lambda (result_0
                                                                          lst_0)
                                                                   (begin
                                                                     (if (pair?
                                                                          lst_0)
                                                                       (let ((e_1
                                                                              (unsafe-car
                                                                               lst_0)))
                                                                         (let ((rest_0
                                                                                (unsafe-cdr
                                                                                 lst_0)))
                                                                           (let ((result_1
                                                                                  (let ((result_1
                                                                                         (simple?_0
                                                                                          imports8_0
                                                                                          knowns7_0
                                                                                          mutated9_0
                                                                                          prim-knowns6_0
                                                                                          pure?1_0
                                                                                          simples10_0
                                                                                          e_1
                                                                                          #f)))
                                                                                    (values
                                                                                     result_1))))
                                                                             (if (if (not
                                                                                      (let ((x_0
                                                                                             (list
                                                                                              e_1)))
                                                                                        (not
                                                                                         result_1)))
                                                                                   #t
                                                                                   #f)
                                                                               (for-loop_0
                                                                                result_1
                                                                                rest_0)
                                                                               result_1))))
                                                                       result_0))))))
                                                              (for-loop_0
                                                               #t
                                                               es_0)))
                                                           #f)))
                                                    (begin
                                                      (hash-set!
                                                       simples10_0
                                                       e_0
                                                       (if pure?1_0
                                                         (vector
                                                          r_1
                                                          (if arity-match?_0
                                                            (vector-ref c_0 1)
                                                            'unknown)
                                                          result-arity_0)
                                                         (vector
                                                          (if arity-match?_0
                                                            (vector-ref c_0 0)
                                                            'unknown)
                                                          r_1
                                                          result-arity_0)))
                                                      r_1))
                                                  r_0)))))
                                         (args
                                          (raise-binding-result-arity-error
                                           2
                                           args))))
                                       (if (if (if (eq? 'set! hd_0)
                                                 (let ((a_0
                                                        (cdr (unwrap e_0))))
                                                   (let ((p_0 (unwrap a_0)))
                                                     (if (pair? p_0)
                                                       (let ((a_1 (cdr p_0)))
                                                         (let ((p_1
                                                                (unwrap a_1)))
                                                           (if (pair? p_1)
                                                             (let ((a_2
                                                                    (cdr p_1)))
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_2))))
                                                             #f)))
                                                       #f)))
                                                 #f)
                                             (not pure?1_0)
                                             #f)
                                         (let ((e_1
                                                (let ((d_0 (cdr (unwrap e_0))))
                                                  (let ((d_1
                                                         (cdr (unwrap d_0))))
                                                    (let ((a_0
                                                           (car (unwrap d_1))))
                                                      a_0)))))
                                           (begin
                                             (simple?_0
                                              imports8_0
                                              knowns7_0
                                              mutated9_0
                                              prim-knowns6_0
                                              pure?1_0
                                              simples10_0
                                              e_1
                                              1)
                                             (returns_0 result-arity_0 1)))
                                         (if (if (eq? 'values hd_0)
                                               (let ((a_0 (cdr (unwrap e_0))))
                                                 (wrap-list? a_0))
                                               #f)
                                           (let ((es_0
                                                  (let ((d_0
                                                         (cdr (unwrap e_0))))
                                                    (unwrap-list d_0))))
                                             (let ((c_0
                                                    (hash-ref
                                                     simples10_0
                                                     e_0
                                                     '#(unknown unknown 1))))
                                               (let ((r_0
                                                      (vector-ref
                                                       c_0
                                                       (if pure?1_0 0 1))))
                                                 (let ((arity-match?_0
                                                        (eqv?
                                                         result-arity_0
                                                         (vector-ref c_0 2))))
                                                   (if (let ((or-part_0
                                                              (eq?
                                                               'unknown
                                                               r_0)))
                                                         (if or-part_0
                                                           or-part_0
                                                           (not
                                                            arity-match?_0)))
                                                     (let ((r_1
                                                            (if (returns_0
                                                                 result-arity_0
                                                                 (length es_0))
                                                              (begin
                                                                (letrec*
                                                                 ((for-loop_0
                                                                   (|#%name|
                                                                    for-loop
                                                                    (lambda (result_0
                                                                             lst_0)
                                                                      (begin
                                                                        (if (pair?
                                                                             lst_0)
                                                                          (let ((e_1
                                                                                 (unsafe-car
                                                                                  lst_0)))
                                                                            (let ((rest_0
                                                                                   (unsafe-cdr
                                                                                    lst_0)))
                                                                              (let ((result_1
                                                                                     (let ((result_1
                                                                                            (simple?_0
                                                                                             imports8_0
                                                                                             knowns7_0
                                                                                             mutated9_0
                                                                                             prim-knowns6_0
                                                                                             pure?1_0
                                                                                             simples10_0
                                                                                             e_1
                                                                                             1)))
                                                                                       (values
                                                                                        result_1))))
                                                                                (if (if (not
                                                                                         (let ((x_0
                                                                                                (list
                                                                                                 e_1)))
                                                                                           (not
                                                                                            result_1)))
                                                                                      #t
                                                                                      #f)
                                                                                  (for-loop_0
                                                                                   result_1
                                                                                   rest_0)
                                                                                  result_1))))
                                                                          result_0))))))
                                                                 (for-loop_0
                                                                  #t
                                                                  es_0)))
                                                              #f)))
                                                       (begin
                                                         (hash-set!
                                                          simples10_0
                                                          e_0
                                                          (if pure?1_0
                                                            (vector
                                                             r_1
                                                             (if arity-match?_0
                                                               (vector-ref
                                                                c_0
                                                                1)
                                                               'unknown)
                                                             result-arity_0)
                                                            (vector
                                                             (if arity-match?_0
                                                               (vector-ref
                                                                c_0
                                                                0)
                                                               'unknown)
                                                             r_1
                                                             result-arity_0)))
                                                         r_1))
                                                     r_0)))))
                                           (if (let ((p_0 (unwrap e_0)))
                                                 (if (pair? p_0) #t #f))
                                             (call-with-values
                                              (lambda ()
                                                (let ((p_0 (unwrap e_0)))
                                                  (let ((proc_0
                                                         (let ((a_0 (car p_0)))
                                                           a_0)))
                                                    (let ((args_0
                                                           (let ((d_0
                                                                  (cdr p_0)))
                                                             d_0)))
                                                      (let ((proc_1 proc_0))
                                                        (values
                                                         proc_1
                                                         args_0))))))
                                              (case-lambda
                                               ((proc_0 args_0)
                                                (let ((c_0
                                                       (hash-ref
                                                        simples10_0
                                                        e_0
                                                        '#(unknown
                                                           unknown
                                                           1))))
                                                  (let ((r_0
                                                         (vector-ref
                                                          c_0
                                                          (if pure?1_0 0 1))))
                                                    (let ((arity-match?_0
                                                           (eqv?
                                                            result-arity_0
                                                            (vector-ref
                                                             c_0
                                                             2))))
                                                      (if (let ((or-part_0
                                                                 (eq?
                                                                  'unknown
                                                                  r_0)))
                                                            (if or-part_0
                                                              or-part_0
                                                              (not
                                                               arity-match?_0)))
                                                        (let ((r_1
                                                               (let ((proc_1
                                                                      (unwrap
                                                                       proc_0)))
                                                                 (if (symbol?
                                                                      proc_1)
                                                                   (if (let ((v_0
                                                                              (let ((or-part_0
                                                                                     (hash-ref-either
                                                                                      knowns7_0
                                                                                      imports8_0
                                                                                      proc_1)))
                                                                                (if or-part_0
                                                                                  or-part_0
                                                                                  (hash-ref
                                                                                   prim-knowns6_0
                                                                                   proc_1
                                                                                   #f)))))
                                                                         (if (if pure?1_0
                                                                               (if (known-procedure/pure?
                                                                                    v_0)
                                                                                 (returns_0
                                                                                  result-arity_0
                                                                                  1)
                                                                                 #f)
                                                                               (if (known-procedure/no-prompt?
                                                                                    v_0)
                                                                                 (eqv?
                                                                                  result-arity_0
                                                                                  #f)
                                                                                 #f))
                                                                           (let ((app_0
                                                                                  (known-procedure-arity-mask
                                                                                   v_0)))
                                                                             (bitwise-bit-set?
                                                                              app_0
                                                                              (length
                                                                               args_0)))
                                                                           #f))
                                                                     (if (simple-mutated-state?
                                                                          (hash-ref
                                                                           mutated9_0
                                                                           proc_1
                                                                           #f))
                                                                       (begin
                                                                         (letrec*
                                                                          ((for-loop_0
                                                                            (|#%name|
                                                                             for-loop
                                                                             (lambda (result_0
                                                                                      lst_0)
                                                                               (begin
                                                                                 (if (pair?
                                                                                      lst_0)
                                                                                   (let ((arg_0
                                                                                          (unsafe-car
                                                                                           lst_0)))
                                                                                     (let ((rest_0
                                                                                            (unsafe-cdr
                                                                                             lst_0)))
                                                                                       (let ((result_1
                                                                                              (let ((result_1
                                                                                                     (simple?_0
                                                                                                      imports8_0
                                                                                                      knowns7_0
                                                                                                      mutated9_0
                                                                                                      prim-knowns6_0
                                                                                                      pure?1_0
                                                                                                      simples10_0
                                                                                                      arg_0
                                                                                                      1)))
                                                                                                (values
                                                                                                 result_1))))
                                                                                         (if (if (not
                                                                                                  (let ((x_0
                                                                                                         (list
                                                                                                          arg_0)))
                                                                                                    (not
                                                                                                     result_1)))
                                                                                               #t
                                                                                               #f)
                                                                                           (for-loop_0
                                                                                            result_1
                                                                                            rest_0)
                                                                                           result_1))))
                                                                                   result_0))))))
                                                                          (for-loop_0
                                                                           #t
                                                                           args_0)))
                                                                       #f)
                                                                     #f)
                                                                   #f))))
                                                          (begin
                                                            (hash-set!
                                                             simples10_0
                                                             e_0
                                                             (if pure?1_0
                                                               (vector
                                                                r_1
                                                                (if arity-match?_0
                                                                  (vector-ref
                                                                   c_0
                                                                   1)
                                                                  'unknown)
                                                                result-arity_0)
                                                               (vector
                                                                (if arity-match?_0
                                                                  (vector-ref
                                                                   c_0
                                                                   0)
                                                                  'unknown)
                                                                r_1
                                                                result-arity_0)))
                                                            r_1))
                                                        r_0)))))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args))))
                                             (let ((e_1 (unwrap e_0)))
                                               (if (returns_0 result-arity_0 1)
                                                 (let ((or-part_0
                                                        (if (symbol? e_1)
                                                          (simple-mutated-state?
                                                           (hash-ref
                                                            mutated9_0
                                                            e_1
                                                            #f))
                                                          #f)))
                                                   (if or-part_0
                                                     or-part_0
                                                     (let ((or-part_1
                                                            (integer? e_1)))
                                                       (if or-part_1
                                                         or-part_1
                                                         (let ((or-part_2
                                                                (boolean?
                                                                 e_1)))
                                                           (if or-part_2
                                                             or-part_2
                                                             (let ((or-part_3
                                                                    (string?
                                                                     e_1)))
                                                               (if or-part_3
                                                                 or-part_3
                                                                 (let ((or-part_4
                                                                        (bytes?
                                                                         e_1)))
                                                                   (if or-part_4
                                                                     or-part_4
                                                                     (regexp?
                                                                      e_1)))))))))))
                                                 #f)))))))))))))))))))))
    (|#%name|
     simple?
     (lambda (pure?1_0
              result-arity2_0
              e5_0
              prim-knowns6_0
              knowns7_0
              imports8_0
              mutated9_0
              simples10_0)
       (begin
         (simple?_0
          imports8_0
          knowns7_0
          mutated9_0
          prim-knowns6_0
          pure?1_0
          simples10_0
          e5_0
          result-arity2_0))))))
(define simple/can-copy?
  (lambda (e_0 prim-knowns_0 knowns_0 imports_0 mutated_0)
    (let ((hd_0
           (let ((p_0 (unwrap e_0))) (if (pair? p_0) (unwrap (car p_0)) #f))))
      (if (if (eq? 'quote hd_0)
            (let ((a_0 (cdr (unwrap e_0))))
              (let ((p_0 (unwrap a_0)))
                (if (pair? p_0)
                  (let ((a_1 (cdr p_0)))
                    (let ((app_0 (unwrap '()))) (eq? app_0 (unwrap a_1))))
                  #f)))
            #f)
        (let ((v_0
               (let ((d_0 (cdr (unwrap e_0))))
                 (let ((a_0 (car (unwrap d_0)))) a_0))))
          (can-copy-literal? v_0))
        (if (let ((p_0 (unwrap e_0))) (if (pair? p_0) #t #f))
          #f
          (let ((e_1 (unwrap e_0)))
            (let ((or-part_0
                   (if (symbol? e_1)
                     (simple-mutated-state? (hash-ref mutated_0 e_1 #f))
                     #f)))
              (if or-part_0 or-part_0 (can-copy-literal? e_1)))))))))
(define can-copy-literal?
  (lambda (e_0)
    (let ((or-part_0 (integer? e_0)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (boolean? e_0)))
          (if or-part_1 or-part_1 (symbol? e_0)))))))
(define find-known+import
  (lambda (key_0 prim-knowns_0 knowns_0 imports_0 mutated_0)
    (let ((c2_0 (hash-ref prim-knowns_0 key_0 #f)))
      (if c2_0
        (values c2_0 #f)
        (let ((c1_0 (hash-ref-either knowns_0 imports_0 key_0)))
          (if c1_0
            (if (not (simple-mutated-state? (hash-ref mutated_0 key_0 #f)))
              (values #f #f)
              (if (known-copy? c1_0)
                (find-known+import
                 (unwrap (known-copy-id c1_0))
                 prim-knowns_0
                 knowns_0
                 imports_0
                 mutated_0)
                (values c1_0 (hash-ref imports_0 key_0 #f))))
            (values #f #f)))))))
(define find-known
  (lambda (key_0 prim-knowns_0 knowns_0 imports_0 mutated_0)
    (call-with-values
     (lambda ()
       (find-known+import key_0 prim-knowns_0 knowns_0 imports_0 mutated_0))
     (case-lambda
      ((k_0 im_0) k_0)
      (args (raise-binding-result-arity-error 2 args))))))
(define struct:struct-type-info
  (make-record-type-descriptor* 'struct-type-info #f #f #f #f 9 511))
(define effect657
  (struct-type-install-properties!
   struct:struct-type-info
   'struct-type-info
   9
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1 2 3 4 5 6 7 8)
   #f
   'struct-type-info))
(define struct-type-info1.1
  (|#%name|
   struct-type-info
   (record-constructor
    (make-record-constructor-descriptor struct:struct-type-info #f #f))))
(define struct-type-info?656
  (|#%name| struct-type-info? (record-predicate struct:struct-type-info)))
(define struct-type-info?
  (|#%name|
   struct-type-info?
   (lambda (v)
     (if (struct-type-info?656 v)
       #t
       ($value
        (if (impersonator? v)
          (struct-type-info?656 (impersonator-val v))
          #f))))))
(define struct-type-info-name658
  (|#%name| struct-type-info-name (record-accessor struct:struct-type-info 0)))
(define struct-type-info-name
  (|#%name|
   struct-type-info-name
   (lambda (s)
     (if (struct-type-info?656 s)
       (struct-type-info-name658 s)
       ($value
        (impersonate-ref
         struct-type-info-name658
         struct:struct-type-info
         0
         s
         'struct-type-info
         'name))))))
(define struct-type-info-parent659
  (|#%name|
   struct-type-info-parent
   (record-accessor struct:struct-type-info 1)))
(define struct-type-info-parent
  (|#%name|
   struct-type-info-parent
   (lambda (s)
     (if (struct-type-info?656 s)
       (struct-type-info-parent659 s)
       ($value
        (impersonate-ref
         struct-type-info-parent659
         struct:struct-type-info
         1
         s
         'struct-type-info
         'parent))))))
(define struct-type-info-immediate-field-count660
  (|#%name|
   struct-type-info-immediate-field-count
   (record-accessor struct:struct-type-info 2)))
(define struct-type-info-immediate-field-count
  (|#%name|
   struct-type-info-immediate-field-count
   (lambda (s)
     (if (struct-type-info?656 s)
       (struct-type-info-immediate-field-count660 s)
       ($value
        (impersonate-ref
         struct-type-info-immediate-field-count660
         struct:struct-type-info
         2
         s
         'struct-type-info
         'immediate-field-count))))))
(define struct-type-info-field-count661
  (|#%name|
   struct-type-info-field-count
   (record-accessor struct:struct-type-info 3)))
(define struct-type-info-field-count
  (|#%name|
   struct-type-info-field-count
   (lambda (s)
     (if (struct-type-info?656 s)
       (struct-type-info-field-count661 s)
       ($value
        (impersonate-ref
         struct-type-info-field-count661
         struct:struct-type-info
         3
         s
         'struct-type-info
         'field-count))))))
(define struct-type-info-pure-constructor?662
  (|#%name|
   struct-type-info-pure-constructor?
   (record-accessor struct:struct-type-info 4)))
(define struct-type-info-pure-constructor?
  (|#%name|
   struct-type-info-pure-constructor?
   (lambda (s)
     (if (struct-type-info?656 s)
       (struct-type-info-pure-constructor?662 s)
       ($value
        (impersonate-ref
         struct-type-info-pure-constructor?662
         struct:struct-type-info
         4
         s
         'struct-type-info
         'pure-constructor?))))))
(define struct-type-info-authentic?663
  (|#%name|
   struct-type-info-authentic?
   (record-accessor struct:struct-type-info 5)))
(define struct-type-info-authentic?
  (|#%name|
   struct-type-info-authentic?
   (lambda (s)
     (if (struct-type-info?656 s)
       (struct-type-info-authentic?663 s)
       ($value
        (impersonate-ref
         struct-type-info-authentic?663
         struct:struct-type-info
         5
         s
         'struct-type-info
         'authentic?))))))
(define struct-type-info-prefab-immutables664
  (|#%name|
   struct-type-info-prefab-immutables
   (record-accessor struct:struct-type-info 6)))
(define struct-type-info-prefab-immutables
  (|#%name|
   struct-type-info-prefab-immutables
   (lambda (s)
     (if (struct-type-info?656 s)
       (struct-type-info-prefab-immutables664 s)
       ($value
        (impersonate-ref
         struct-type-info-prefab-immutables664
         struct:struct-type-info
         6
         s
         'struct-type-info
         'prefab-immutables))))))
(define struct-type-info-constructor-name-expr665
  (|#%name|
   struct-type-info-constructor-name-expr
   (record-accessor struct:struct-type-info 7)))
(define struct-type-info-constructor-name-expr
  (|#%name|
   struct-type-info-constructor-name-expr
   (lambda (s)
     (if (struct-type-info?656 s)
       (struct-type-info-constructor-name-expr665 s)
       ($value
        (impersonate-ref
         struct-type-info-constructor-name-expr665
         struct:struct-type-info
         7
         s
         'struct-type-info
         'constructor-name-expr))))))
(define struct-type-info-rest666
  (|#%name| struct-type-info-rest (record-accessor struct:struct-type-info 8)))
(define struct-type-info-rest
  (|#%name|
   struct-type-info-rest
   (lambda (s)
     (if (struct-type-info?656 s)
       (struct-type-info-rest666 s)
       ($value
        (impersonate-ref
         struct-type-info-rest666
         struct:struct-type-info
         8
         s
         'struct-type-info
         'rest))))))
(define effect667
  (begin
    (register-struct-constructor! struct-type-info1.1)
    (register-struct-predicate! struct-type-info?)
    (register-struct-field-accessor!
     struct-type-info-name
     struct:struct-type-info
     0)
    (register-struct-field-accessor!
     struct-type-info-parent
     struct:struct-type-info
     1)
    (register-struct-field-accessor!
     struct-type-info-immediate-field-count
     struct:struct-type-info
     2)
    (register-struct-field-accessor!
     struct-type-info-field-count
     struct:struct-type-info
     3)
    (register-struct-field-accessor!
     struct-type-info-pure-constructor?
     struct:struct-type-info
     4)
    (register-struct-field-accessor!
     struct-type-info-authentic?
     struct:struct-type-info
     5)
    (register-struct-field-accessor!
     struct-type-info-prefab-immutables
     struct:struct-type-info
     6)
    (register-struct-field-accessor!
     struct-type-info-constructor-name-expr
     struct:struct-type-info
     7)
    (register-struct-field-accessor!
     struct-type-info-rest
     struct:struct-type-info
     8)
    (void)))
(define struct-type-info-rest-properties-list-pos 0)
(define make-struct-type-info
  (letrec ((includes-property?_0
            (|#%name|
             includes-property?
             (lambda (rest_0 name_0)
               (begin
                 (if (pair? rest_0)
                   (let ((v_0 (car rest_0)))
                     (let ((hd_0
                            (let ((p_0 (unwrap v_0)))
                              (if (pair? p_0) (unwrap (car p_0)) #f))))
                       (if (if (eq? 'list hd_0)
                             (let ((a_0 (cdr (unwrap v_0))))
                               (if (wrap-list? a_0)
                                 (begin
                                   (letrec*
                                    ((for-loop_0
                                      (|#%name|
                                       for-loop
                                       (lambda (result_0 lst_0)
                                         (begin
                                           (if (not (null? (unwrap lst_0)))
                                             (let ((v_1
                                                    (if (pair? (unwrap lst_0))
                                                      (wrap-car lst_0)
                                                      lst_0)))
                                               (let ((rest_1
                                                      (if (pair?
                                                           (unwrap lst_0))
                                                        (wrap-cdr lst_0)
                                                        null)))
                                                 (let ((v_2 v_1))
                                                   (let ((result_1
                                                          (let ((result_1
                                                                 (let ((p_0
                                                                        (unwrap
                                                                         v_2)))
                                                                   (if (pair?
                                                                        p_0)
                                                                     (if (let ((a_1
                                                                                (car
                                                                                 p_0)))
                                                                           (let ((app_0
                                                                                  (unwrap
                                                                                   'cons)))
                                                                             (eq?
                                                                              app_0
                                                                              (unwrap
                                                                               a_1))))
                                                                       (let ((a_1
                                                                              (cdr
                                                                               p_0)))
                                                                         (let ((p_1
                                                                                (unwrap
                                                                                 a_1)))
                                                                           (if (pair?
                                                                                p_1)
                                                                             (let ((a_2
                                                                                    (cdr
                                                                                     p_1)))
                                                                               (let ((p_2
                                                                                      (unwrap
                                                                                       a_2)))
                                                                                 (if (pair?
                                                                                      p_2)
                                                                                   (let ((a_3
                                                                                          (cdr
                                                                                           p_2)))
                                                                                     (let ((app_0
                                                                                            (unwrap
                                                                                             '())))
                                                                                       (eq?
                                                                                        app_0
                                                                                        (unwrap
                                                                                         a_3))))
                                                                                   #f)))
                                                                             #f)))
                                                                       #f)
                                                                     #f))))
                                                            (values
                                                             result_1))))
                                                     (if (if (not
                                                              (let ((x_0
                                                                     (list
                                                                      v_2)))
                                                                (not
                                                                 result_1)))
                                                           #t
                                                           #f)
                                                       (for-loop_0
                                                        result_1
                                                        rest_1)
                                                       result_1)))))
                                             result_0))))))
                                    (for-loop_0 #t a_0)))
                                 #f))
                             #f)
                         (call-with-values
                          (lambda ()
                            (let ((d_0 (cdr (unwrap v_0))))
                              (call-with-values
                               (lambda ()
                                 (begin
                                   (letrec*
                                    ((for-loop_0
                                      (|#%name|
                                       for-loop
                                       (lambda (props_0 vals_0 lst_0)
                                         (begin
                                           (if (not (null? (unwrap lst_0)))
                                             (let ((v_1
                                                    (if (pair? (unwrap lst_0))
                                                      (wrap-car lst_0)
                                                      lst_0)))
                                               (let ((rest_1
                                                      (if (pair?
                                                           (unwrap lst_0))
                                                        (wrap-cdr lst_0)
                                                        null)))
                                                 (let ((v_2 v_1))
                                                   (call-with-values
                                                    (lambda ()
                                                      (call-with-values
                                                       (lambda ()
                                                         (call-with-values
                                                          (lambda ()
                                                            (let ((d_1
                                                                   (cdr
                                                                    (unwrap
                                                                     v_2))))
                                                              (let ((p_0
                                                                     (unwrap
                                                                      d_1)))
                                                                (let ((props_1
                                                                       (let ((a_0
                                                                              (car
                                                                               p_0)))
                                                                         a_0)))
                                                                  (let ((vals_1
                                                                         (let ((d_2
                                                                                (cdr
                                                                                 p_0)))
                                                                           (let ((a_0
                                                                                  (car
                                                                                   (unwrap
                                                                                    d_2))))
                                                                             a_0))))
                                                                    (let ((props_2
                                                                           props_1))
                                                                      (values
                                                                       props_2
                                                                       vals_1)))))))
                                                          (case-lambda
                                                           ((props3_0 vals4_0)
                                                            (values
                                                             (cons
                                                              props3_0
                                                              props_0)
                                                             (cons
                                                              vals4_0
                                                              vals_0)))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             2
                                                             args)))))
                                                       (case-lambda
                                                        ((props_1 vals_1)
                                                         (values
                                                          props_1
                                                          vals_1))
                                                        (args
                                                         (raise-binding-result-arity-error
                                                          2
                                                          args)))))
                                                    (case-lambda
                                                     ((props_1 vals_1)
                                                      (for-loop_0
                                                       props_1
                                                       vals_1
                                                       rest_1))
                                                     (args
                                                      (raise-binding-result-arity-error
                                                       2
                                                       args)))))))
                                             (values props_0 vals_0)))))))
                                    (for-loop_0 null null d_0))))
                               (case-lambda
                                ((props_0 vals_0)
                                 (let ((app_0 (reverse$1 props_0)))
                                   (values app_0 (reverse$1 vals_0))))
                                (args
                                 (raise-binding-result-arity-error 2 args))))))
                          (case-lambda
                           ((props_0 vals_0)
                            (begin
                              (letrec*
                               ((for-loop_0
                                 (|#%name|
                                  for-loop
                                  (lambda (result_0 lst_0)
                                    (begin
                                      (if (pair? lst_0)
                                        (let ((prop_0 (unsafe-car lst_0)))
                                          (let ((rest_1 (unsafe-cdr lst_0)))
                                            (let ((result_1
                                                   (let ((result_1
                                                          (eq?
                                                           (unwrap prop_0)
                                                           name_0)))
                                                     (values result_1))))
                                              (if (if (not
                                                       (let ((x_0
                                                              (list prop_0)))
                                                         result_1))
                                                    #t
                                                    #f)
                                                (for-loop_0 result_1 rest_1)
                                                result_1))))
                                        result_0))))))
                               (for-loop_0 #f props_0))))
                           (args (raise-binding-result-arity-error 2 args))))
                         #f)))
                   #f))))))
    (lambda (v_0 prim-knowns_0 knowns_0 imports_0 mutated_0)
      (let ((hd_0
             (let ((p_0 (unwrap v_0)))
               (if (pair? p_0) (unwrap (car p_0)) #f))))
        (if (if (eq? 'make-struct-type hd_0)
              (let ((a_0 (cdr (unwrap v_0))))
                (let ((p_0 (unwrap a_0)))
                  (if (pair? p_0)
                    (if (let ((a_1 (car p_0)))
                          (let ((p_1 (unwrap a_1)))
                            (if (pair? p_1)
                              (if (let ((a_2 (car p_1)))
                                    (let ((app_0 (unwrap 'quote)))
                                      (eq? app_0 (unwrap a_2))))
                                (let ((a_2 (cdr p_1)))
                                  (let ((p_2 (unwrap a_2)))
                                    (if (pair? p_2)
                                      (let ((a_3 (cdr p_2)))
                                        (let ((app_0 (unwrap '())))
                                          (eq? app_0 (unwrap a_3))))
                                      #f)))
                                #f)
                              #f)))
                      (let ((a_1 (cdr p_0)))
                        (let ((p_1 (unwrap a_1)))
                          (if (pair? p_1)
                            (let ((a_2 (cdr p_1)))
                              (let ((p_2 (unwrap a_2)))
                                (if (pair? p_2)
                                  (let ((a_3 (cdr p_2)))
                                    (let ((p_3 (unwrap a_3)))
                                      (if (pair? p_3)
                                        (if (let ((a_4 (car p_3)))
                                              (wrap-equal? 0 a_4))
                                          (let ((a_4 (cdr p_3)))
                                            (let ((p_4 (unwrap a_4)))
                                              (if (pair? p_4)
                                                (if (let ((a_5 (car p_4)))
                                                      (let ((app_0
                                                             (unwrap #f)))
                                                        (eq?
                                                         app_0
                                                         (unwrap a_5))))
                                                  #t
                                                  #f)
                                                #f)))
                                          #f)
                                        #f)))
                                  #f)))
                            #f)))
                      #f)
                    #f)))
              #f)
          (call-with-values
           (lambda ()
             (let ((d_0 (cdr (unwrap v_0))))
               (let ((p_0 (unwrap d_0)))
                 (let ((name_0
                        (let ((a_0 (car p_0)))
                          (let ((d_1 (cdr (unwrap a_0))))
                            (let ((a_1 (car (unwrap d_1)))) a_1)))))
                   (call-with-values
                    (lambda ()
                      (let ((d_1 (cdr p_0)))
                        (let ((p_1 (unwrap d_1)))
                          (let ((parent_0 (let ((a_0 (car p_1))) a_0)))
                            (call-with-values
                             (lambda ()
                               (let ((d_2 (cdr p_1)))
                                 (let ((p_2 (unwrap d_2)))
                                   (let ((fields_0
                                          (let ((a_0 (car p_2))) a_0)))
                                     (let ((rest_0
                                            (let ((d_3 (cdr p_2)))
                                              (let ((d_4 (cdr (unwrap d_3))))
                                                (let ((d_5 (cdr (unwrap d_4))))
                                                  d_5)))))
                                       (let ((fields_1 fields_0))
                                         (values fields_1 rest_0)))))))
                             (case-lambda
                              ((fields_0 rest_0)
                               (let ((parent_1 parent_0))
                                 (values parent_1 fields_0 rest_0)))
                              (args
                               (raise-binding-result-arity-error 2 args))))))))
                    (case-lambda
                     ((parent_0 fields_0 rest_0)
                      (let ((name_1 name_0))
                        (values name_1 parent_0 fields_0 rest_0)))
                     (args (raise-binding-result-arity-error 3 args))))))))
           (case-lambda
            ((name_0 parent_0 fields_0 rest_0)
             (let ((u-name_0 (unwrap name_0)))
               (let ((u-parent_0
                      (let ((u-parent_0 (unwrap parent_0)))
                        (let ((or-part_0
                               (extract-struct-typed-from-checked u-parent_0)))
                          (if or-part_0 or-part_0 u-parent_0)))))
                 (let ((u-name_1 u-name_0))
                   (if (symbol? u-name_1)
                     (if (let ((or-part_0 (not u-parent_0)))
                           (if or-part_0
                             or-part_0
                             (known-struct-type?
                              (call-with-values
                               (lambda ()
                                 (find-known+import
                                  u-parent_0
                                  prim-knowns_0
                                  knowns_0
                                  imports_0
                                  mutated_0))
                               (case-lambda
                                ((k_0 im_0) k_0)
                                (args
                                 (raise-binding-result-arity-error
                                  2
                                  args)))))))
                       (if (exact-nonnegative-integer? fields_0)
                         (let ((prefab-imms_0
                                (if (let ((app_0 (unwrap '())))
                                      (eq? app_0 (unwrap rest_0)))
                                  'non-prefab
                                  (if (let ((p_0 (unwrap rest_0)))
                                        (if (pair? p_0)
                                          (let ((a_0 (cdr p_0)))
                                            (let ((app_0 (unwrap '())))
                                              (eq? app_0 (unwrap a_0))))
                                          #f))
                                    'non-prefab
                                    (if (let ((p_0 (unwrap rest_0)))
                                          (if (pair? p_0)
                                            (let ((a_0 (cdr p_0)))
                                              (let ((p_1 (unwrap a_0)))
                                                (if (pair? p_1)
                                                  (if (let ((a_1 (car p_1)))
                                                        (let ((app_0
                                                               (unwrap #f)))
                                                          (eq?
                                                           app_0
                                                           (unwrap a_1))))
                                                    #t
                                                    #f)
                                                  #f)))
                                            #f))
                                      'non-prefab
                                      (if (let ((p_0 (unwrap rest_0)))
                                            (if (pair? p_0)
                                              (let ((a_0 (cdr p_0)))
                                                (let ((p_1 (unwrap a_0)))
                                                  (if (pair? p_1)
                                                    (if (let ((a_1 (car p_1)))
                                                          (let ((p_2
                                                                 (unwrap a_1)))
                                                            (if (pair? p_2)
                                                              (if (let ((a_2
                                                                         (car
                                                                          p_2)))
                                                                    (let ((app_0
                                                                           (unwrap
                                                                            'current-inspector)))
                                                                      (eq?
                                                                       app_0
                                                                       (unwrap
                                                                        a_2))))
                                                                (let ((a_2
                                                                       (cdr
                                                                        p_2)))
                                                                  (let ((app_0
                                                                         (unwrap
                                                                          '())))
                                                                    (eq?
                                                                     app_0
                                                                     (unwrap
                                                                      a_2))))
                                                                #f)
                                                              #f)))
                                                      #t
                                                      #f)
                                                    #f)))
                                              #f))
                                        'non-prefab
                                        (if (let ((p_0 (unwrap rest_0)))
                                              (if (pair? p_0)
                                                (let ((a_0 (cdr p_0)))
                                                  (let ((p_1 (unwrap a_0)))
                                                    (if (pair? p_1)
                                                      (if (let ((a_1
                                                                 (car p_1)))
                                                            (let ((p_2
                                                                   (unwrap
                                                                    a_1)))
                                                              (if (pair? p_2)
                                                                (if (let ((a_2
                                                                           (car
                                                                            p_2)))
                                                                      (let ((app_0
                                                                             (unwrap
                                                                              'quote)))
                                                                        (eq?
                                                                         app_0
                                                                         (unwrap
                                                                          a_2))))
                                                                  (let ((a_2
                                                                         (cdr
                                                                          p_2)))
                                                                    (let ((p_3
                                                                           (unwrap
                                                                            a_2)))
                                                                      (if (pair?
                                                                           p_3)
                                                                        (if (let ((a_3
                                                                                   (car
                                                                                    p_3)))
                                                                              (let ((app_0
                                                                                     (unwrap
                                                                                      'prefab)))
                                                                                (eq?
                                                                                 app_0
                                                                                 (unwrap
                                                                                  a_3))))
                                                                          (let ((a_3
                                                                                 (cdr
                                                                                  p_3)))
                                                                            (let ((app_0
                                                                                   (unwrap
                                                                                    '())))
                                                                              (eq?
                                                                               app_0
                                                                               (unwrap
                                                                                a_3))))
                                                                          #f)
                                                                        #f)))
                                                                  #f)
                                                                #f)))
                                                        (let ((a_1 (cdr p_1)))
                                                          (let ((p_2
                                                                 (unwrap a_1)))
                                                            (if (pair? p_2)
                                                              (let ((a_2
                                                                     (cdr
                                                                      p_2)))
                                                                (let ((p_3
                                                                       (unwrap
                                                                        a_2)))
                                                                  (if (pair?
                                                                       p_3)
                                                                    (if (let ((a_3
                                                                               (car
                                                                                p_3)))
                                                                          (let ((p_4
                                                                                 (unwrap
                                                                                  a_3)))
                                                                            (if (pair?
                                                                                 p_4)
                                                                              (if (let ((a_4
                                                                                         (car
                                                                                          p_4)))
                                                                                    (let ((app_0
                                                                                           (unwrap
                                                                                            'quote)))
                                                                                      (eq?
                                                                                       app_0
                                                                                       (unwrap
                                                                                        a_4))))
                                                                                (let ((a_4
                                                                                       (cdr
                                                                                        p_4)))
                                                                                  (let ((p_5
                                                                                         (unwrap
                                                                                          a_4)))
                                                                                    (if (pair?
                                                                                         p_5)
                                                                                      (let ((a_5
                                                                                             (cdr
                                                                                              p_5)))
                                                                                        (let ((app_0
                                                                                               (unwrap
                                                                                                '())))
                                                                                          (eq?
                                                                                           app_0
                                                                                           (unwrap
                                                                                            a_5))))
                                                                                      #f)))
                                                                                #f)
                                                                              #f)))
                                                                      #t
                                                                      #f)
                                                                    #f)))
                                                              #f)))
                                                        #f)
                                                      #f)))
                                                #f))
                                          (let ((immutables_0
                                                 (let ((d_0
                                                        (cdr (unwrap rest_0))))
                                                   (let ((d_1
                                                          (cdr (unwrap d_0))))
                                                     (let ((d_2
                                                            (cdr
                                                             (unwrap d_1))))
                                                       (let ((a_0
                                                              (car
                                                               (unwrap d_2))))
                                                         (let ((d_3
                                                                (cdr
                                                                 (unwrap
                                                                  a_0))))
                                                           (let ((a_1
                                                                  (car
                                                                   (unwrap
                                                                    d_3))))
                                                             a_1))))))))
                                            immutables_0)
                                          (if (let ((p_0 (unwrap rest_0)))
                                                (if (pair? p_0)
                                                  (let ((a_0 (cdr p_0)))
                                                    (let ((p_1 (unwrap a_0)))
                                                      (if (pair? p_1)
                                                        (if (let ((a_1
                                                                   (car p_1)))
                                                              (let ((p_2
                                                                     (unwrap
                                                                      a_1)))
                                                                (if (pair? p_2)
                                                                  (if (let ((a_2
                                                                             (car
                                                                              p_2)))
                                                                        (let ((app_0
                                                                               (unwrap
                                                                                'quote)))
                                                                          (eq?
                                                                           app_0
                                                                           (unwrap
                                                                            a_2))))
                                                                    (let ((a_2
                                                                           (cdr
                                                                            p_2)))
                                                                      (let ((p_3
                                                                             (unwrap
                                                                              a_2)))
                                                                        (if (pair?
                                                                             p_3)
                                                                          (if (let ((a_3
                                                                                     (car
                                                                                      p_3)))
                                                                                (let ((app_0
                                                                                       (unwrap
                                                                                        'prefab)))
                                                                                  (eq?
                                                                                   app_0
                                                                                   (unwrap
                                                                                    a_3))))
                                                                            (let ((a_3
                                                                                   (cdr
                                                                                    p_3)))
                                                                              (let ((app_0
                                                                                     (unwrap
                                                                                      '())))
                                                                                (eq?
                                                                                 app_0
                                                                                 (unwrap
                                                                                  a_3))))
                                                                            #f)
                                                                          #f)))
                                                                    #f)
                                                                  #f)))
                                                          (let ((a_1
                                                                 (cdr p_1)))
                                                            (let ((p_2
                                                                   (unwrap
                                                                    a_1)))
                                                              (if (pair? p_2)
                                                                (let ((a_2
                                                                       (cdr
                                                                        p_2)))
                                                                  (let ((app_0
                                                                         (unwrap
                                                                          '())))
                                                                    (eq?
                                                                     app_0
                                                                     (unwrap
                                                                      a_2))))
                                                                #f)))
                                                          #f)
                                                        #f)))
                                                  #f))
                                            '()
                                            (if (let ((p_0 (unwrap rest_0)))
                                                  (if (pair? p_0)
                                                    (let ((a_0 (cdr p_0)))
                                                      (let ((p_1 (unwrap a_0)))
                                                        (if (pair? p_1)
                                                          (if (let ((a_1
                                                                     (car
                                                                      p_1)))
                                                                (let ((p_2
                                                                       (unwrap
                                                                        a_1)))
                                                                  (if (pair?
                                                                       p_2)
                                                                    (if (let ((a_2
                                                                               (car
                                                                                p_2)))
                                                                          (let ((app_0
                                                                                 (unwrap
                                                                                  'quote)))
                                                                            (eq?
                                                                             app_0
                                                                             (unwrap
                                                                              a_2))))
                                                                      (let ((a_2
                                                                             (cdr
                                                                              p_2)))
                                                                        (let ((p_3
                                                                               (unwrap
                                                                                a_2)))
                                                                          (if (pair?
                                                                               p_3)
                                                                            (if (let ((a_3
                                                                                       (car
                                                                                        p_3)))
                                                                                  (let ((app_0
                                                                                         (unwrap
                                                                                          'prefab)))
                                                                                    (eq?
                                                                                     app_0
                                                                                     (unwrap
                                                                                      a_3))))
                                                                              (let ((a_3
                                                                                     (cdr
                                                                                      p_3)))
                                                                                (let ((app_0
                                                                                       (unwrap
                                                                                        '())))
                                                                                  (eq?
                                                                                   app_0
                                                                                   (unwrap
                                                                                    a_3))))
                                                                              #f)
                                                                            #f)))
                                                                      #f)
                                                                    #f)))
                                                            (let ((a_1
                                                                   (cdr p_1)))
                                                              (let ((app_0
                                                                     (unwrap
                                                                      '())))
                                                                (eq?
                                                                 app_0
                                                                 (unwrap
                                                                  a_1))))
                                                            #f)
                                                          #f)))
                                                    #f))
                                              '()
                                              #f)))))))))
                           (let ((parent-sti_0
                                  (if u-parent_0
                                    (call-with-values
                                     (lambda ()
                                       (find-known+import
                                        u-parent_0
                                        prim-knowns_0
                                        knowns_0
                                        imports_0
                                        mutated_0))
                                     (case-lambda
                                      ((k_0 im_0) k_0)
                                      (args
                                       (raise-binding-result-arity-error
                                        2
                                        args))))
                                    #f)))
                             (let ((prefab-imms_1 prefab-imms_0))
                               (let ((constructor-name-expr_0
                                      (if (> (length rest_0) 5)
                                        (list-ref rest_0 5)
                                        #f)))
                                 (if prefab-imms_1
                                   (let ((app_0
                                          (+
                                           fields_0
                                           (if u-parent_0
                                             (known-struct-type-field-count
                                              parent-sti_0)
                                             0))))
                                     (let ((app_1
                                            (if (let ((or-part_0
                                                       (not u-parent_0)))
                                                  (if or-part_0
                                                    or-part_0
                                                    (known-struct-type-pure-constructor?
                                                     parent-sti_0)))
                                              (if (let ((or-part_0
                                                         (<
                                                          (length rest_0)
                                                          5)))
                                                    (if or-part_0
                                                      or-part_0
                                                      (not
                                                       (unwrap
                                                        (list-ref rest_0 4)))))
                                                (not
                                                 (includes-property?_0
                                                  rest_0
                                                  'prop:chaperone-unsafe-undefined))
                                                #f)
                                              #f)))
                                       (let ((app_2
                                              (includes-property?_0
                                               rest_0
                                               'prop:authentic)))
                                         (struct-type-info1.1
                                          name_0
                                          parent_0
                                          fields_0
                                          app_0
                                          app_1
                                          app_2
                                          (if (eq? prefab-imms_1 'non-prefab)
                                            #f
                                            prefab-imms_1)
                                          constructor-name-expr_0
                                          rest_0))))
                                   #f)))))
                         #f)
                       #f)
                     #f)))))
            (args (raise-binding-result-arity-error 4 args))))
          (if (if (eq? 'let-values hd_0)
                (let ((a_0 (cdr (unwrap v_0))))
                  (let ((p_0 (unwrap a_0)))
                    (if (pair? p_0)
                      (if (let ((a_1 (car p_0)))
                            (let ((app_0 (unwrap '())))
                              (eq? app_0 (unwrap a_1))))
                        (let ((a_1 (cdr p_0)))
                          (let ((p_1 (unwrap a_1)))
                            (if (pair? p_1)
                              (let ((a_2 (cdr p_1)))
                                (let ((app_0 (unwrap '())))
                                  (eq? app_0 (unwrap a_2))))
                              #f)))
                        #f)
                      #f)))
                #f)
            (let ((body_0
                   (let ((d_0 (cdr (unwrap v_0))))
                     (let ((d_1 (cdr (unwrap d_0))))
                       (let ((a_0 (car (unwrap d_1)))) a_0)))))
              (make-struct-type-info
               body_0
               prim-knowns_0
               knowns_0
               imports_0
               mutated_0))
            #f))))))
(define pure-properties-list?
  (lambda (e_0 prim-knowns_0 knowns_0 imports_0 mutated_0 simples_0)
    (let ((hd_0
           (let ((p_0 (unwrap e_0))) (if (pair? p_0) (unwrap (car p_0)) #f))))
      (if (if (eq? 'list hd_0)
            (let ((a_0 (cdr (unwrap e_0))))
              (if (wrap-list? a_0)
                (begin
                  (letrec*
                   ((for-loop_0
                     (|#%name|
                      for-loop
                      (lambda (result_0 lst_0)
                        (begin
                          (if (not (null? (unwrap lst_0)))
                            (let ((v_0
                                   (if (pair? (unwrap lst_0))
                                     (wrap-car lst_0)
                                     lst_0)))
                              (let ((rest_0
                                     (if (pair? (unwrap lst_0))
                                       (wrap-cdr lst_0)
                                       null)))
                                (let ((v_1 v_0))
                                  (let ((result_1
                                         (let ((result_1
                                                (let ((p_0 (unwrap v_1)))
                                                  (if (pair? p_0)
                                                    (if (let ((a_1 (car p_0)))
                                                          (let ((app_0
                                                                 (unwrap
                                                                  'cons)))
                                                            (eq?
                                                             app_0
                                                             (unwrap a_1))))
                                                      (let ((a_1 (cdr p_0)))
                                                        (let ((p_1
                                                               (unwrap a_1)))
                                                          (if (pair? p_1)
                                                            (let ((a_2
                                                                   (cdr p_1)))
                                                              (let ((p_2
                                                                     (unwrap
                                                                      a_2)))
                                                                (if (pair? p_2)
                                                                  (let ((a_3
                                                                         (cdr
                                                                          p_2)))
                                                                    (let ((app_0
                                                                           (unwrap
                                                                            '())))
                                                                      (eq?
                                                                       app_0
                                                                       (unwrap
                                                                        a_3))))
                                                                  #f)))
                                                            #f)))
                                                      #f)
                                                    #f))))
                                           (values result_1))))
                                    (if (if (not
                                             (let ((x_0 (list v_1)))
                                               (not result_1)))
                                          #t
                                          #f)
                                      (for-loop_0 result_1 rest_0)
                                      result_1)))))
                            result_0))))))
                   (for-loop_0 #t a_0)))
                #f))
            #f)
        (call-with-values
         (lambda ()
           (let ((d_0 (cdr (unwrap e_0))))
             (call-with-values
              (lambda ()
                (begin
                  (letrec*
                   ((for-loop_0
                     (|#%name|
                      for-loop
                      (lambda (props_0 vals_0 lst_0)
                        (begin
                          (if (not (null? (unwrap lst_0)))
                            (let ((v_0
                                   (if (pair? (unwrap lst_0))
                                     (wrap-car lst_0)
                                     lst_0)))
                              (let ((rest_0
                                     (if (pair? (unwrap lst_0))
                                       (wrap-cdr lst_0)
                                       null)))
                                (let ((v_1 v_0))
                                  (call-with-values
                                   (lambda ()
                                     (call-with-values
                                      (lambda ()
                                        (call-with-values
                                         (lambda ()
                                           (let ((d_1 (cdr (unwrap v_1))))
                                             (let ((p_0 (unwrap d_1)))
                                               (let ((props_1
                                                      (let ((a_0 (car p_0)))
                                                        a_0)))
                                                 (let ((vals_1
                                                        (let ((d_2 (cdr p_0)))
                                                          (let ((a_0
                                                                 (car
                                                                  (unwrap
                                                                   d_2))))
                                                            a_0))))
                                                   (let ((props_2 props_1))
                                                     (values
                                                      props_2
                                                      vals_1)))))))
                                         (case-lambda
                                          ((props5_0 vals6_0)
                                           (values
                                            (cons props5_0 props_0)
                                            (cons vals6_0 vals_0)))
                                          (args
                                           (raise-binding-result-arity-error
                                            2
                                            args)))))
                                      (case-lambda
                                       ((props_1 vals_1)
                                        (values props_1 vals_1))
                                       (args
                                        (raise-binding-result-arity-error
                                         2
                                         args)))))
                                   (case-lambda
                                    ((props_1 vals_1)
                                     (for-loop_0 props_1 vals_1 rest_0))
                                    (args
                                     (raise-binding-result-arity-error
                                      2
                                      args)))))))
                            (values props_0 vals_0)))))))
                   (for-loop_0 null null d_0))))
              (case-lambda
               ((props_0 vals_0)
                (let ((app_0 (reverse$1 props_0)))
                  (values app_0 (reverse$1 vals_0))))
               (args (raise-binding-result-arity-error 2 args))))))
         (case-lambda
          ((props_0 vals_0)
           (begin
             (letrec*
              ((for-loop_0
                (|#%name|
                 for-loop
                 (lambda (result_0 lst_0 lst_1)
                   (begin
                     (if (if (pair? lst_0) (pair? lst_1) #f)
                       (let ((prop_0 (unsafe-car lst_0)))
                         (let ((rest_0 (unsafe-cdr lst_0)))
                           (let ((val_0 (unsafe-car lst_1)))
                             (let ((rest_1 (unsafe-cdr lst_1)))
                               (let ((result_1
                                      (let ((result_1
                                             (let ((u-prop_0 (unwrap prop_0)))
                                               (if (symbol? u-prop_0)
                                                 (if (known-struct-type-property/immediate-guard?
                                                      (call-with-values
                                                       (lambda ()
                                                         (find-known+import
                                                          u-prop_0
                                                          prim-knowns_0
                                                          knowns_0
                                                          imports_0
                                                          mutated_0))
                                                       (case-lambda
                                                        ((k_0 im_0) k_0)
                                                        (args
                                                         (raise-binding-result-arity-error
                                                          2
                                                          args)))))
                                                   (simple?.1
                                                    #t
                                                    1
                                                    val_0
                                                    prim-knowns_0
                                                    knowns_0
                                                    imports_0
                                                    mutated_0
                                                    simples_0)
                                                   #f)
                                                 #f))))
                                        (values result_1))))
                                 (if (if (not
                                          (let ((x_0 (list prop_0)))
                                            (not result_1)))
                                       (if (not
                                            (let ((x_0 (list val_0)))
                                              (not result_1)))
                                         #t
                                         #f)
                                       #f)
                                   (for-loop_0 result_1 rest_0 rest_1)
                                   result_1))))))
                       result_0))))))
              (for-loop_0 #t props_0 vals_0))))
          (args (raise-binding-result-arity-error 2 args))))
        (if (let ((app_0 (unwrap 'null))) (eq? app_0 (unwrap e_0)))
          #t
          (if (if (eq? 'quote hd_0)
                (let ((a_0 (cdr (unwrap e_0))))
                  (let ((p_0 (unwrap a_0)))
                    (if (pair? p_0)
                      (if (let ((a_1 (car p_0)))
                            (let ((app_0 (unwrap '())))
                              (eq? app_0 (unwrap a_1))))
                        (let ((a_1 (cdr p_0)))
                          (let ((app_0 (unwrap '())))
                            (eq? app_0 (unwrap a_1))))
                        #f)
                      #f)))
                #f)
            #t
            #f))))))
(define extract-struct-typed-from-checked
  (lambda (e_0)
    (let ((hd_0
           (let ((p_0 (unwrap e_0))) (if (pair? p_0) (unwrap (car p_0)) #f))))
      (if (if (eq? 'let-values hd_0)
            (let ((a_0 (cdr (unwrap e_0))))
              (let ((p_0 (unwrap a_0)))
                (if (pair? p_0)
                  (if (let ((a_1 (car p_0)))
                        (let ((p_1 (unwrap a_1)))
                          (if (pair? p_1)
                            (if (let ((a_2 (car p_1)))
                                  (let ((p_2 (unwrap a_2)))
                                    (if (pair? p_2)
                                      (if (let ((a_3 (car p_2)))
                                            (let ((p_3 (unwrap a_3)))
                                              (if (pair? p_3)
                                                (let ((a_4 (cdr p_3)))
                                                  (let ((app_0 (unwrap '())))
                                                    (eq? app_0 (unwrap a_4))))
                                                #f)))
                                        (let ((a_3 (cdr p_2)))
                                          (let ((p_3 (unwrap a_3)))
                                            (if (pair? p_3)
                                              (let ((a_4 (cdr p_3)))
                                                (let ((app_0 (unwrap '())))
                                                  (eq? app_0 (unwrap a_4))))
                                              #f)))
                                        #f)
                                      #f)))
                              (let ((a_2 (cdr p_1)))
                                (let ((app_0 (unwrap '())))
                                  (eq? app_0 (unwrap a_2))))
                              #f)
                            #f)))
                    (let ((a_1 (cdr p_0)))
                      (let ((p_1 (unwrap a_1)))
                        (if (pair? p_1)
                          (if (let ((a_2 (car p_1)))
                                (let ((p_2 (unwrap a_2)))
                                  (if (pair? p_2)
                                    (if (let ((a_3 (car p_2)))
                                          (let ((app_0 (unwrap 'if)))
                                            (eq? app_0 (unwrap a_3))))
                                      (let ((a_3 (cdr p_2)))
                                        (let ((p_3 (unwrap a_3)))
                                          (if (pair? p_3)
                                            (if (let ((a_4 (car p_3)))
                                                  (let ((p_4 (unwrap a_4)))
                                                    (if (pair? p_4)
                                                      (if (let ((a_5
                                                                 (car p_4)))
                                                            (let ((app_0
                                                                   (unwrap
                                                                    'struct-type?)))
                                                              (eq?
                                                               app_0
                                                               (unwrap a_5))))
                                                        (let ((a_5 (cdr p_4)))
                                                          (let ((p_5
                                                                 (unwrap a_5)))
                                                            (if (pair? p_5)
                                                              (let ((a_6
                                                                     (cdr
                                                                      p_5)))
                                                                (let ((app_0
                                                                       (unwrap
                                                                        '())))
                                                                  (eq?
                                                                   app_0
                                                                   (unwrap
                                                                    a_6))))
                                                              #f)))
                                                        #f)
                                                      #f)))
                                              (let ((a_4 (cdr p_3)))
                                                (let ((p_4 (unwrap a_4)))
                                                  (if (pair? p_4)
                                                    (let ((a_5 (cdr p_4)))
                                                      (let ((p_5 (unwrap a_5)))
                                                        (if (pair? p_5)
                                                          (let ((a_6
                                                                 (cdr p_5)))
                                                            (let ((app_0
                                                                   (unwrap
                                                                    '())))
                                                              (eq?
                                                               app_0
                                                               (unwrap a_6))))
                                                          #f)))
                                                    #f)))
                                              #f)
                                            #f)))
                                      #f)
                                    #f)))
                            (let ((a_2 (cdr p_1)))
                              (let ((app_0 (unwrap '())))
                                (eq? app_0 (unwrap a_2))))
                            #f)
                          #f)))
                    #f)
                  #f)))
            #f)
        (call-with-values
         (lambda ()
           (let ((d_0 (cdr (unwrap e_0))))
             (let ((p_0 (unwrap d_0)))
               (call-with-values
                (lambda ()
                  (let ((a_0 (car p_0)))
                    (let ((a_1 (car (unwrap a_0))))
                      (let ((p_1 (unwrap a_1)))
                        (let ((tmp1_0
                               (let ((a_2 (car p_1)))
                                 (let ((a_3 (car (unwrap a_2)))) a_3))))
                          (let ((id_0
                                 (let ((d_1 (cdr p_1)))
                                   (let ((a_2 (car (unwrap d_1)))) a_2))))
                            (let ((tmp1_1 tmp1_0)) (values tmp1_1 id_0))))))))
                (case-lambda
                 ((tmp1_0 id_0)
                  (call-with-values
                   (lambda ()
                     (let ((d_1 (cdr p_0)))
                       (let ((a_0 (car (unwrap d_1))))
                         (let ((d_2 (cdr (unwrap a_0))))
                           (let ((p_1 (unwrap d_2)))
                             (let ((tmp2_0
                                    (let ((a_1 (car p_1)))
                                      (let ((d_3 (cdr (unwrap a_1))))
                                        (let ((a_2 (car (unwrap d_3))))
                                          a_2)))))
                               (let ((tmp3_0
                                      (let ((d_3 (cdr p_1)))
                                        (let ((a_1 (car (unwrap d_3)))) a_1))))
                                 (let ((tmp2_1 tmp2_0))
                                   (values tmp2_1 tmp3_0)))))))))
                   (case-lambda
                    ((tmp2_0 tmp3_0)
                     (let ((tmp1_1 tmp1_0) (id_1 id_0))
                       (values tmp1_1 id_1 tmp2_0 tmp3_0)))
                    (args (raise-binding-result-arity-error 2 args)))))
                 (args (raise-binding-result-arity-error 2 args)))))))
         (case-lambda
          ((tmp1_0 id_0 tmp2_0 tmp3_0)
           (let ((u-tmp1_0 (unwrap tmp1_0)))
             (if (eq? u-tmp1_0 (unwrap tmp2_0))
               (if (eq? u-tmp1_0 (unwrap tmp3_0))
                 (let ((u_0 (unwrap id_0))) (if (symbol? u_0) u_0 #f))
                 #f)
               #f)))
          (args (raise-binding-result-arity-error 4 args))))
        #f))))
(define literal?
  (lambda (v_0)
    (let ((u_0 (unwrap v_0)))
      (let ((or-part_0 (number? u_0)))
        (if or-part_0
          or-part_0
          (let ((or-part_1 (boolean? u_0)))
            (if or-part_1
              or-part_1
              (let ((or-part_2 (eq? u_0 'eof)))
                (if or-part_2
                  or-part_2
                  (if (pair? u_0)
                    (let ((a_0 (unwrap (car u_0))))
                      (if (eq? a_0 'quote)
                        (let ((u_1 (unwrap (cadr u_0))))
                          (let ((or-part_3
                                 (if (symbol? u_1)
                                   (let ((or-part_3 (symbol-interned? u_1)))
                                     (if or-part_3
                                       or-part_3
                                       (symbol-unreadable? u_1)))
                                   #f)))
                            (if or-part_3
                              or-part_3
                              (let ((or-part_4 (null? u_1)))
                                (if or-part_4
                                  or-part_4
                                  (let ((or-part_5 (char? u_1)))
                                    (if or-part_5 or-part_5 (void? u_1))))))))
                        (if (if (eq? a_0 'void) (null? (cdr u_0)) #f) #t #f)))
                    #f))))))))))
(define unwrap-literal
  (lambda (v_0)
    (let ((u_0 (unwrap v_0)))
      (if (pair? u_0)
        (let ((a_0 (unwrap (car u_0))))
          (if (eq? a_0 'quote)
            (unwrap (cadr u_0))
            (if (eq? a_0 'void) (void) (void))))
        (if (eq? u_0 'eof) eof u_0)))))
(define wrap-literal
  (lambda (x_0)
    (if (let ((or-part_0 (string? x_0)))
          (if or-part_0
            or-part_0
            (let ((or-part_1 (bytes? x_0)))
              (if or-part_1
                or-part_1
                (let ((or-part_2 (boolean? x_0)))
                  (if or-part_2 or-part_2 (number? x_0)))))))
      x_0
      (if (void? x_0)
        (list 'quote (void))
        (if (eof-object? x_0) 'eof (list 'quote x_0))))))
(define try-fold-primitive
  (letrec ((procz1 (lambda args_0 (error "missing"))))
    (lambda (orig-prim-sym_0 orig-k_0 exps_0 prim-knowns_0 primitives_0)
      (let ((prim-sym_0
             (if (known-procedure/pure/folding-unsafe? orig-k_0)
               (known-procedure/pure/folding-unsafe-safe orig-k_0)
               orig-prim-sym_0)))
        (let ((k_0
               (if (known-procedure/pure/folding-unsafe? orig-k_0)
                 (hash-ref prim-knowns_0 prim-sym_0 #f)
                 orig-k_0)))
          (let ((vals_0
                 (reverse$1
                  (begin
                    (letrec*
                     ((for-loop_0
                       (|#%name|
                        for-loop
                        (lambda (fold-var_0 lst_0)
                          (begin
                            (if (pair? lst_0)
                              (let ((exp_0 (unsafe-car lst_0)))
                                (let ((rest_0 (unsafe-cdr lst_0)))
                                  (let ((fold-var_1
                                         (let ((fold-var_1
                                                (cons
                                                 (unwrap-literal exp_0)
                                                 fold-var_0)))
                                           (values fold-var_1))))
                                    (for-loop_0 fold-var_1 rest_0))))
                              fold-var_0))))))
                     (for-loop_0 null exps_0))))))
            (let ((check-result_0 (limit-check k_0 vals_0)))
              (if check-result_0
                (call-with-escape-continuation
                 (lambda (esc_0)
                   (call-with-exception-handler
                    (lambda (exn_0)
                      (if (exn:fail? exn_0) (|#%app| esc_0 #f) exn_0))
                    (lambda ()
                      (let ((result_0
                             (apply
                              (hash-ref primitives_0 prim-sym_0 procz1)
                              vals_0)))
                        (begin
                          (|#%app| check-result_0 result_0)
                          (list (wrap-literal result_0))))))))
                #f))))))))
(define limit-check
  (letrec ((procz1
            (lambda (v_0)
              (if (fixnum-for-every-system? v_0)
                (void)
                (error "result is not a fixnum for every system")))))
    (lambda (k_0 vals_0)
      (let ((kind_0
             (if (known-procedure/folding/limited? k_0)
               (known-procedure/folding/limited-kind k_0)
               (if (known-procedure/has-unsafe/folding/limited? k_0)
                 (known-procedure/has-unsafe/folding/limited-kind k_0)
                 #f))))
        (if (eq? kind_0 #f)
          void
          (if (eq? kind_0 'expt)
            (if (not
                 (if (= 2 (length vals_0))
                   (if (exact-integer? (car vals_0))
                     (if (exact-integer? (cadr vals_0))
                       (>
                        (let ((app_0 (integer-length (car vals_0))))
                          (* app_0 (cadr vals_0)))
                        1000)
                       #f)
                     #f)
                   #f))
              void
              #f)
            (if (eq? kind_0 'fixnum)
              (if (begin
                    (letrec*
                     ((for-loop_0
                       (|#%name|
                        for-loop
                        (lambda (result_0 lst_0)
                          (begin
                            (if (pair? lst_0)
                              (let ((v_0 (unsafe-car lst_0)))
                                (let ((rest_0 (unsafe-cdr lst_0)))
                                  (let ((result_1
                                         (let ((result_1
                                                (fixnum-for-every-system?
                                                 v_0)))
                                           (values result_1))))
                                    (if (if (not
                                             (let ((x_0 (list v_0)))
                                               (not result_1)))
                                          #t
                                          #f)
                                      (for-loop_0 result_1 rest_0)
                                      result_1))))
                              result_0))))))
                     (for-loop_0 #t vals_0)))
                procz1
                #f)
              (error 'schemify:limited-ok? "unknown limit kind: ~a" k_0))))))))
(define optimize
  (lambda (v_0 prim-knowns_0 primitives_0 knowns_0 imports_0 mutated_0)
    (let ((hd_0
           (let ((p_0 (unwrap v_0))) (if (pair? p_0) (unwrap (car p_0)) #f))))
      (if (if (eq? 'if hd_0)
            (let ((a_0 (cdr (unwrap v_0))))
              (let ((p_0 (unwrap a_0)))
                (if (pair? p_0)
                  (let ((a_1 (cdr p_0)))
                    (let ((p_1 (unwrap a_1)))
                      (if (pair? p_1)
                        (let ((a_2 (cdr p_1)))
                          (let ((p_2 (unwrap a_2)))
                            (if (pair? p_2)
                              (let ((a_3 (cdr p_2)))
                                (let ((app_0 (unwrap '())))
                                  (eq? app_0 (unwrap a_3))))
                              #f)))
                        #f)))
                  #f)))
            #f)
        (call-with-values
         (lambda ()
           (let ((d_0 (cdr (unwrap v_0))))
             (let ((p_0 (unwrap d_0)))
               (let ((t_0 (let ((a_0 (car p_0))) a_0)))
                 (call-with-values
                  (lambda ()
                    (let ((d_1 (cdr p_0)))
                      (let ((p_1 (unwrap d_1)))
                        (let ((e1_0 (let ((a_0 (car p_1))) a_0)))
                          (let ((e2_0
                                 (let ((d_2 (cdr p_1)))
                                   (let ((a_0 (car (unwrap d_2)))) a_0))))
                            (let ((e1_1 e1_0)) (values e1_1 e2_0)))))))
                  (case-lambda
                   ((e1_0 e2_0) (let ((t_1 t_0)) (values t_1 e1_0 e2_0)))
                   (args (raise-binding-result-arity-error 2 args))))))))
         (case-lambda
          ((t_0 e1_0 e2_0) (if (literal? t_0) (if (unwrap t_0) e1_0 e2_0) v_0))
          (args (raise-binding-result-arity-error 3 args))))
        (if (if (eq? 'begin hd_0)
              (let ((a_0 (cdr (unwrap v_0))))
                (let ((p_0 (unwrap a_0)))
                  (if (pair? p_0)
                    (if (let ((a_1 (car p_0)))
                          (let ((p_1 (unwrap a_1)))
                            (if (pair? p_1)
                              (if (let ((a_2 (car p_1)))
                                    (let ((app_0 (unwrap 'quote)))
                                      (eq? app_0 (unwrap a_2))))
                                (let ((a_2 (cdr p_1)))
                                  (let ((p_2 (unwrap a_2)))
                                    (if (pair? p_2)
                                      (let ((a_3 (cdr p_2)))
                                        (let ((app_0 (unwrap '())))
                                          (eq? app_0 (unwrap a_3))))
                                      #f)))
                                #f)
                              #f)))
                      (let ((a_1 (cdr p_0)))
                        (let ((p_1 (unwrap a_1))) (if (pair? p_1) #t #f)))
                      #f)
                    #f)))
              #f)
          (call-with-values
           (lambda ()
             (let ((d_0 (cdr (unwrap v_0))))
               (let ((d_1 (cdr (unwrap d_0))))
                 (let ((p_0 (unwrap d_1)))
                   (let ((e_0 (let ((a_0 (car p_0))) a_0)))
                     (let ((es_0 (let ((d_2 (cdr p_0))) d_2)))
                       (let ((e_1 e_0)) (values e_1 es_0))))))))
           (case-lambda
            ((e_0 es_0)
             (optimize
              (reannotate v_0 (list* 'begin e_0 es_0))
              prim-knowns_0
              primitives_0
              knowns_0
              imports_0
              mutated_0))
            (args (raise-binding-result-arity-error 2 args))))
          (if (if (eq? 'not hd_0)
                (let ((a_0 (cdr (unwrap v_0))))
                  (let ((p_0 (unwrap a_0)))
                    (if (pair? p_0)
                      (let ((a_1 (cdr p_0)))
                        (let ((app_0 (unwrap '()))) (eq? app_0 (unwrap a_1))))
                      #f)))
                #f)
            (let ((t_0
                   (let ((d_0 (cdr (unwrap v_0))))
                     (let ((a_0 (car (unwrap d_0)))) a_0))))
              (if (literal? t_0) (not (unwrap t_0)) v_0))
            (if (if (eq? 'procedure? hd_0)
                  (let ((a_0 (cdr (unwrap v_0))))
                    (let ((p_0 (unwrap a_0)))
                      (if (pair? p_0)
                        (let ((a_1 (cdr p_0)))
                          (let ((app_0 (unwrap '())))
                            (eq? app_0 (unwrap a_1))))
                        #f)))
                  #f)
              (let ((e_0
                     (let ((d_0 (cdr (unwrap v_0))))
                       (let ((a_0 (car (unwrap d_0)))) a_0))))
                (let ((u_0 (unwrap e_0)))
                  (if (symbol? u_0)
                    (let ((k_0
                           (call-with-values
                            (lambda ()
                              (find-known+import
                               u_0
                               prim-knowns_0
                               knowns_0
                               imports_0
                               mutated_0))
                            (case-lambda
                             ((k_0 im_0) k_0)
                             (args
                              (raise-binding-result-arity-error 2 args))))))
                      (if (known-procedure? k_0) #t v_0))
                    v_0)))
              (if (if (eq? 'procedure-arity-includes? hd_0)
                    (let ((a_0 (cdr (unwrap v_0))))
                      (let ((p_0 (unwrap a_0)))
                        (if (pair? p_0)
                          (let ((a_1 (cdr p_0)))
                            (let ((p_1 (unwrap a_1)))
                              (if (pair? p_1)
                                (let ((a_2 (cdr p_1)))
                                  (let ((app_0 (unwrap '())))
                                    (eq? app_0 (unwrap a_2))))
                                #f)))
                          #f)))
                    #f)
                (call-with-values
                 (lambda ()
                   (let ((d_0 (cdr (unwrap v_0))))
                     (let ((p_0 (unwrap d_0)))
                       (let ((e_0 (let ((a_0 (car p_0))) a_0)))
                         (let ((n_0
                                (let ((d_1 (cdr p_0)))
                                  (let ((a_0 (car (unwrap d_1)))) a_0))))
                           (let ((e_1 e_0)) (values e_1 n_0)))))))
                 (case-lambda
                  ((e_0 n_0)
                   (let ((u_0 (unwrap e_0)))
                     (let ((u-n_0 (unwrap n_0)))
                       (if (if (symbol? u_0)
                             (exact-nonnegative-integer? n_0)
                             #f)
                         (let ((k_0
                                (call-with-values
                                 (lambda ()
                                   (find-known+import
                                    u_0
                                    prim-knowns_0
                                    knowns_0
                                    imports_0
                                    mutated_0))
                                 (case-lambda
                                  ((k_0 im_0) k_0)
                                  (args
                                   (raise-binding-result-arity-error
                                    2
                                    args))))))
                           (if (if (known-procedure? k_0)
                                 (bitwise-bit-set?
                                  (known-procedure-arity-mask k_0)
                                  u-n_0)
                                 #f)
                             #t
                             v_0))
                         v_0))))
                  (args (raise-binding-result-arity-error 2 args))))
                (if (let ((p_0 (unwrap v_0))) (if (pair? p_0) #t #f))
                  (call-with-values
                   (lambda ()
                     (let ((p_0 (unwrap v_0)))
                       (let ((rator_0 (let ((a_0 (car p_0))) a_0)))
                         (let ((rands_0 (let ((d_0 (cdr p_0))) d_0)))
                           (let ((rator_1 rator_0))
                             (values rator_1 rands_0))))))
                   (case-lambda
                    ((rator_0 rands_0)
                     (let ((u-rator_0 (unwrap rator_0)))
                       (let ((k_0
                              (if (symbol? u-rator_0)
                                (hash-ref prim-knowns_0 u-rator_0 #f)
                                #f)))
                         (let ((c1_0
                                (if k_0
                                  (if (let ((or-part_0
                                             (known-procedure/folding? k_0)))
                                        (if or-part_0
                                          or-part_0
                                          (let ((or-part_1
                                                 (known-procedure/pure/folding?
                                                  k_0)))
                                            (if or-part_1
                                              or-part_1
                                              (known-procedure/has-unsafe/folding?
                                               k_0)))))
                                    (if (begin
                                          (letrec*
                                           ((for-loop_0
                                             (|#%name|
                                              for-loop
                                              (lambda (result_0 lst_0)
                                                (begin
                                                  (if (pair? lst_0)
                                                    (let ((rand_0
                                                           (unsafe-car lst_0)))
                                                      (let ((rest_0
                                                             (unsafe-cdr
                                                              lst_0)))
                                                        (let ((result_1
                                                               (let ((result_1
                                                                      (literal?
                                                                       rand_0)))
                                                                 (values
                                                                  result_1))))
                                                          (if (if (not
                                                                   (let ((x_0
                                                                          (list
                                                                           rand_0)))
                                                                     (not
                                                                      result_1)))
                                                                #t
                                                                #f)
                                                            (for-loop_0
                                                             result_1
                                                             rest_0)
                                                            result_1))))
                                                    result_0))))))
                                           (for-loop_0 #t rands_0)))
                                      (try-fold-primitive
                                       u-rator_0
                                       k_0
                                       rands_0
                                       prim-knowns_0
                                       primitives_0)
                                      #f)
                                    #f)
                                  #f)))
                           (if c1_0 (car c1_0) v_0)))))
                    (args (raise-binding-result-arity-error 2 args))))
                  (let ((u_0 (unwrap v_0)))
                    (if (symbol? u_0)
                      (let ((k_0 (hash-ref-either knowns_0 imports_0 u_0)))
                        (if (if (known-literal? k_0)
                              (simple-mutated-state?
                               (hash-ref mutated_0 u_0 #f))
                              #f)
                          (wrap-literal (known-literal-value k_0))
                          v_0))
                      v_0)))))))))))
(define optimize*
  (letrec ((optimize*-body_0
            (|#%name|
             optimize*-body
             (lambda (imports_0
                      knowns_0
                      mutated_0
                      prim-knowns_0
                      primitives_0
                      unsafe-mode?_0
                      body_0)
               (begin
                 (reverse$1
                  (begin
                    (letrec*
                     ((for-loop_0
                       (|#%name|
                        for-loop
                        (lambda (fold-var_0 lst_0)
                          (begin
                            (if (not (null? (unwrap lst_0)))
                              (let ((v_0
                                     (if (pair? (unwrap lst_0))
                                       (wrap-car lst_0)
                                       lst_0)))
                                (let ((rest_0
                                       (if (pair? (unwrap lst_0))
                                         (wrap-cdr lst_0)
                                         null)))
                                  (let ((v_1 v_0))
                                    (let ((fold-var_1
                                           (let ((fold-var_1
                                                  (cons
                                                   (optimize*_0
                                                    imports_0
                                                    knowns_0
                                                    mutated_0
                                                    prim-knowns_0
                                                    primitives_0
                                                    unsafe-mode?_0
                                                    v_1)
                                                   fold-var_0)))
                                             (values fold-var_1))))
                                      (for-loop_0 fold-var_1 rest_0)))))
                              fold-var_0))))))
                     (for-loop_0 null body_0))))))))
           (optimize*-let_0
            (|#%name|
             optimize*-let
             (lambda (imports_0
                      knowns_0
                      mutated_0
                      prim-knowns_0
                      primitives_0
                      unsafe-mode?_0
                      v_0)
               (begin
                 (if (let ((p_0 (unwrap v_0)))
                       (if (pair? p_0)
                         (let ((a_0 (cdr p_0)))
                           (let ((p_1 (unwrap a_0)))
                             (if (pair? p_1)
                               (if (let ((a_1 (car p_1)))
                                     (if (wrap-list? a_1)
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (result_0 lst_0)
                                               (begin
                                                 (if (not
                                                      (null? (unwrap lst_0)))
                                                   (let ((v_1
                                                          (if (pair?
                                                               (unwrap lst_0))
                                                            (wrap-car lst_0)
                                                            lst_0)))
                                                     (let ((rest_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-cdr lst_0)
                                                              null)))
                                                       (let ((v_2 v_1))
                                                         (let ((result_1
                                                                (let ((result_1
                                                                       (let ((p_2
                                                                              (unwrap
                                                                               v_2)))
                                                                         (if (pair?
                                                                              p_2)
                                                                           (let ((a_2
                                                                                  (cdr
                                                                                   p_2)))
                                                                             (let ((p_3
                                                                                    (unwrap
                                                                                     a_2)))
                                                                               (if (pair?
                                                                                    p_3)
                                                                                 (let ((a_3
                                                                                        (cdr
                                                                                         p_3)))
                                                                                   (let ((app_0
                                                                                          (unwrap
                                                                                           '())))
                                                                                     (eq?
                                                                                      app_0
                                                                                      (unwrap
                                                                                       a_3))))
                                                                                 #f)))
                                                                           #f))))
                                                                  (values
                                                                   result_1))))
                                                           (if (if (not
                                                                    (let ((x_0
                                                                           (list
                                                                            v_2)))
                                                                      (not
                                                                       result_1)))
                                                                 #t
                                                                 #f)
                                                             (for-loop_0
                                                              result_1
                                                              rest_0)
                                                             result_1)))))
                                                   result_0))))))
                                          (for-loop_0 #t a_1)))
                                       #f))
                                 (let ((a_1 (cdr p_1))) (wrap-list? a_1))
                                 #f)
                               #f)))
                         #f))
                   (call-with-values
                    (lambda ()
                      (let ((p_0 (unwrap v_0)))
                        (let ((let-id_0 (let ((a_0 (car p_0))) a_0)))
                          (call-with-values
                           (lambda ()
                             (let ((d_0 (cdr p_0)))
                               (let ((p_1 (unwrap d_0)))
                                 (call-with-values
                                  (lambda ()
                                    (let ((a_0 (car p_1)))
                                      (call-with-values
                                       (lambda ()
                                         (begin
                                           (letrec*
                                            ((for-loop_0
                                              (|#%name|
                                               for-loop
                                               (lambda (idss_0 rhss_0 lst_0)
                                                 (begin
                                                   (if (not
                                                        (null? (unwrap lst_0)))
                                                     (let ((v_1
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-car lst_0)
                                                              lst_0)))
                                                       (let ((rest_0
                                                              (if (pair?
                                                                   (unwrap
                                                                    lst_0))
                                                                (wrap-cdr
                                                                 lst_0)
                                                                null)))
                                                         (let ((v_2 v_1))
                                                           (call-with-values
                                                            (lambda ()
                                                              (call-with-values
                                                               (lambda ()
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (let ((p_2
                                                                           (unwrap
                                                                            v_2)))
                                                                      (let ((idss_1
                                                                             (let ((a_1
                                                                                    (car
                                                                                     p_2)))
                                                                               a_1)))
                                                                        (let ((rhss_1
                                                                               (let ((d_1
                                                                                      (cdr
                                                                                       p_2)))
                                                                                 (let ((a_1
                                                                                        (car
                                                                                         (unwrap
                                                                                          d_1))))
                                                                                   a_1))))
                                                                          (let ((idss_2
                                                                                 idss_1))
                                                                            (values
                                                                             idss_2
                                                                             rhss_1))))))
                                                                  (case-lambda
                                                                   ((idss3_0
                                                                     rhss4_0)
                                                                    (values
                                                                     (cons
                                                                      idss3_0
                                                                      idss_0)
                                                                     (cons
                                                                      rhss4_0
                                                                      rhss_0)))
                                                                   (args
                                                                    (raise-binding-result-arity-error
                                                                     2
                                                                     args)))))
                                                               (case-lambda
                                                                ((idss_1
                                                                  rhss_1)
                                                                 (values
                                                                  idss_1
                                                                  rhss_1))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))
                                                            (case-lambda
                                                             ((idss_1 rhss_1)
                                                              (for-loop_0
                                                               idss_1
                                                               rhss_1
                                                               rest_0))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               2
                                                               args)))))))
                                                     (values
                                                      idss_0
                                                      rhss_0)))))))
                                            (for-loop_0 null null a_0))))
                                       (case-lambda
                                        ((idss_0 rhss_0)
                                         (let ((app_0 (reverse$1 idss_0)))
                                           (values app_0 (reverse$1 rhss_0))))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))))
                                  (case-lambda
                                   ((idss_0 rhss_0)
                                    (let ((body_0
                                           (let ((d_1 (cdr p_1)))
                                             (unwrap-list d_1))))
                                      (let ((idss_1 idss_0) (rhss_1 rhss_0))
                                        (values idss_1 rhss_1 body_0))))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args)))))))
                           (case-lambda
                            ((idss_0 rhss_0 body_0)
                             (let ((let-id_1 let-id_0))
                               (values let-id_1 idss_0 rhss_0 body_0)))
                            (args
                             (raise-binding-result-arity-error 3 args)))))))
                    (case-lambda
                     ((let-id_0 idss_0 rhss_0 body_0)
                      (let ((app_0
                             (reverse$1
                              (begin
                                (letrec*
                                 ((for-loop_0
                                   (|#%name|
                                    for-loop
                                    (lambda (fold-var_0 lst_0 lst_1)
                                      (begin
                                        (if (if (pair? lst_0) (pair? lst_1) #f)
                                          (let ((ids_0 (unsafe-car lst_0)))
                                            (let ((rest_0 (unsafe-cdr lst_0)))
                                              (let ((rhs_0 (unsafe-car lst_1)))
                                                (let ((rest_1
                                                       (unsafe-cdr lst_1)))
                                                  (let ((fold-var_1
                                                         (let ((fold-var_1
                                                                (cons
                                                                 (list
                                                                  ids_0
                                                                  (optimize*_0
                                                                   imports_0
                                                                   knowns_0
                                                                   mutated_0
                                                                   prim-knowns_0
                                                                   primitives_0
                                                                   unsafe-mode?_0
                                                                   rhs_0))
                                                                 fold-var_0)))
                                                           (values
                                                            fold-var_1))))
                                                    (for-loop_0
                                                     fold-var_1
                                                     rest_0
                                                     rest_1))))))
                                          fold-var_0))))))
                                 (for-loop_0 null idss_0 rhss_0))))))
                        (list*
                         let-id_0
                         app_0
                         (optimize*-body_0
                          imports_0
                          knowns_0
                          mutated_0
                          prim-knowns_0
                          primitives_0
                          unsafe-mode?_0
                          body_0))))
                     (args (raise-binding-result-arity-error 4 args))))
                   (error 'match "failed ~e" v_0))))))
           (optimize*_0
            (|#%name|
             optimize*
             (lambda (imports_0
                      knowns_0
                      mutated_0
                      prim-knowns_0
                      primitives_0
                      unsafe-mode?_0
                      v_0)
               (begin
                 (let ((new-v_0
                        (reannotate
                         v_0
                         (let ((hd_0
                                (let ((p_0 (unwrap v_0)))
                                  (if (pair? p_0) (unwrap (car p_0)) #f))))
                           (if (if (eq? 'lambda hd_0)
                                 (let ((a_0 (cdr (unwrap v_0))))
                                   (let ((p_0 (unwrap a_0)))
                                     (if (pair? p_0)
                                       (let ((a_1 (cdr p_0))) (wrap-list? a_1))
                                       #f)))
                                 #f)
                             (call-with-values
                              (lambda ()
                                (let ((d_0 (cdr (unwrap v_0))))
                                  (let ((p_0 (unwrap d_0)))
                                    (let ((formal_0
                                           (let ((a_0 (car p_0))) a_0)))
                                      (let ((body_0
                                             (let ((d_1 (cdr p_0)))
                                               (unwrap-list d_1))))
                                        (let ((formal_1 formal_0))
                                          (values formal_1 body_0)))))))
                              (case-lambda
                               ((formal_0 body_0)
                                (list*
                                 'lambda
                                 formal_0
                                 (optimize*-body_0
                                  imports_0
                                  knowns_0
                                  mutated_0
                                  prim-knowns_0
                                  primitives_0
                                  unsafe-mode?_0
                                  body_0)))
                               (args
                                (raise-binding-result-arity-error 2 args))))
                             (if (if (eq? 'case-lambda hd_0)
                                   (let ((a_0 (cdr (unwrap v_0))))
                                     (if (wrap-list? a_0)
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (result_0 lst_0)
                                               (begin
                                                 (if (not
                                                      (null? (unwrap lst_0)))
                                                   (let ((v_1
                                                          (if (pair?
                                                               (unwrap lst_0))
                                                            (wrap-car lst_0)
                                                            lst_0)))
                                                     (let ((rest_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-cdr lst_0)
                                                              null)))
                                                       (let ((v_2 v_1))
                                                         (let ((result_1
                                                                (let ((result_1
                                                                       (let ((p_0
                                                                              (unwrap
                                                                               v_2)))
                                                                         (if (pair?
                                                                              p_0)
                                                                           (let ((a_1
                                                                                  (cdr
                                                                                   p_0)))
                                                                             (wrap-list?
                                                                              a_1))
                                                                           #f))))
                                                                  (values
                                                                   result_1))))
                                                           (if (if (not
                                                                    (let ((x_0
                                                                           (list
                                                                            v_2)))
                                                                      (not
                                                                       result_1)))
                                                                 #t
                                                                 #f)
                                                             (for-loop_0
                                                              result_1
                                                              rest_0)
                                                             result_1)))))
                                                   result_0))))))
                                          (for-loop_0 #t a_0)))
                                       #f))
                                   #f)
                               (call-with-values
                                (lambda ()
                                  (let ((d_0 (cdr (unwrap v_0))))
                                    (call-with-values
                                     (lambda ()
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (formalss_0 bodys_0 lst_0)
                                               (begin
                                                 (if (not
                                                      (null? (unwrap lst_0)))
                                                   (let ((v_1
                                                          (if (pair?
                                                               (unwrap lst_0))
                                                            (wrap-car lst_0)
                                                            lst_0)))
                                                     (let ((rest_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-cdr lst_0)
                                                              null)))
                                                       (let ((v_2 v_1))
                                                         (call-with-values
                                                          (lambda ()
                                                            (call-with-values
                                                             (lambda ()
                                                               (call-with-values
                                                                (lambda ()
                                                                  (let ((p_0
                                                                         (unwrap
                                                                          v_2)))
                                                                    (let ((formalss_1
                                                                           (let ((a_0
                                                                                  (car
                                                                                   p_0)))
                                                                             a_0)))
                                                                      (let ((bodys_1
                                                                             (let ((d_1
                                                                                    (cdr
                                                                                     p_0)))
                                                                               (unwrap-list
                                                                                d_1))))
                                                                        (let ((formalss_2
                                                                               formalss_1))
                                                                          (values
                                                                           formalss_2
                                                                           bodys_1))))))
                                                                (case-lambda
                                                                 ((formalss1_0
                                                                   bodys2_0)
                                                                  (values
                                                                   (cons
                                                                    formalss1_0
                                                                    formalss_0)
                                                                   (cons
                                                                    bodys2_0
                                                                    bodys_0)))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   2
                                                                   args)))))
                                                             (case-lambda
                                                              ((formalss_1
                                                                bodys_1)
                                                               (values
                                                                formalss_1
                                                                bodys_1))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                2
                                                                args)))))
                                                          (case-lambda
                                                           ((formalss_1
                                                             bodys_1)
                                                            (for-loop_0
                                                             formalss_1
                                                             bodys_1
                                                             rest_0))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             2
                                                             args)))))))
                                                   (values
                                                    formalss_0
                                                    bodys_0)))))))
                                          (for-loop_0 null null d_0))))
                                     (case-lambda
                                      ((formalss_0 bodys_0)
                                       (let ((app_0 (reverse$1 formalss_0)))
                                         (values app_0 (reverse$1 bodys_0))))
                                      (args
                                       (raise-binding-result-arity-error
                                        2
                                        args))))))
                                (case-lambda
                                 ((formalss_0 bodys_0)
                                  (list*
                                   'case-lambda
                                   (reverse$1
                                    (begin
                                      (letrec*
                                       ((for-loop_0
                                         (|#%name|
                                          for-loop
                                          (lambda (fold-var_0 lst_0 lst_1)
                                            (begin
                                              (if (if (pair? lst_0)
                                                    (pair? lst_1)
                                                    #f)
                                                (let ((formals_0
                                                       (unsafe-car lst_0)))
                                                  (let ((rest_0
                                                         (unsafe-cdr lst_0)))
                                                    (let ((body_0
                                                           (unsafe-car lst_1)))
                                                      (let ((rest_1
                                                             (unsafe-cdr
                                                              lst_1)))
                                                        (let ((fold-var_1
                                                               (let ((fold-var_1
                                                                      (cons
                                                                       (list*
                                                                        formals_0
                                                                        (optimize*-body_0
                                                                         imports_0
                                                                         knowns_0
                                                                         mutated_0
                                                                         prim-knowns_0
                                                                         primitives_0
                                                                         unsafe-mode?_0
                                                                         body_0))
                                                                       fold-var_0)))
                                                                 (values
                                                                  fold-var_1))))
                                                          (for-loop_0
                                                           fold-var_1
                                                           rest_0
                                                           rest_1))))))
                                                fold-var_0))))))
                                       (for-loop_0
                                        null
                                        formalss_0
                                        bodys_0))))))
                                 (args
                                  (raise-binding-result-arity-error 2 args))))
                               (if (if (eq? 'let-values hd_0) #t #f)
                                 (optimize*-let_0
                                  imports_0
                                  knowns_0
                                  mutated_0
                                  prim-knowns_0
                                  primitives_0
                                  unsafe-mode?_0
                                  v_0)
                                 (if (if (eq? 'letrec-values hd_0) #t #f)
                                   (optimize*-let_0
                                    imports_0
                                    knowns_0
                                    mutated_0
                                    prim-knowns_0
                                    primitives_0
                                    unsafe-mode?_0
                                    v_0)
                                   (if (if (eq? 'if hd_0)
                                         (let ((a_0 (cdr (unwrap v_0))))
                                           (let ((p_0 (unwrap a_0)))
                                             (if (pair? p_0)
                                               (let ((a_1 (cdr p_0)))
                                                 (let ((p_1 (unwrap a_1)))
                                                   (if (pair? p_1)
                                                     (let ((a_2 (cdr p_1)))
                                                       (let ((p_2
                                                              (unwrap a_2)))
                                                         (if (pair? p_2)
                                                           (let ((a_3
                                                                  (cdr p_2)))
                                                             (let ((app_0
                                                                    (unwrap
                                                                     '())))
                                                               (eq?
                                                                app_0
                                                                (unwrap a_3))))
                                                           #f)))
                                                     #f)))
                                               #f)))
                                         #f)
                                     (call-with-values
                                      (lambda ()
                                        (let ((d_0 (cdr (unwrap v_0))))
                                          (let ((p_0 (unwrap d_0)))
                                            (let ((tst_0
                                                   (let ((a_0 (car p_0)))
                                                     a_0)))
                                              (call-with-values
                                               (lambda ()
                                                 (let ((d_1 (cdr p_0)))
                                                   (let ((p_1 (unwrap d_1)))
                                                     (let ((thn_0
                                                            (let ((a_0
                                                                   (car p_1)))
                                                              a_0)))
                                                       (let ((els_0
                                                              (let ((d_2
                                                                     (cdr
                                                                      p_1)))
                                                                (let ((a_0
                                                                       (car
                                                                        (unwrap
                                                                         d_2))))
                                                                  a_0))))
                                                         (let ((thn_1 thn_0))
                                                           (values
                                                            thn_1
                                                            els_0)))))))
                                               (case-lambda
                                                ((thn_0 els_0)
                                                 (let ((tst_1 tst_0))
                                                   (values tst_1 thn_0 els_0)))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  2
                                                  args))))))))
                                      (case-lambda
                                       ((tst_0 thn_0 els_0)
                                        (let ((app_0
                                               (optimize*_0
                                                imports_0
                                                knowns_0
                                                mutated_0
                                                prim-knowns_0
                                                primitives_0
                                                unsafe-mode?_0
                                                tst_0)))
                                          (let ((app_1
                                                 (optimize*_0
                                                  imports_0
                                                  knowns_0
                                                  mutated_0
                                                  prim-knowns_0
                                                  primitives_0
                                                  unsafe-mode?_0
                                                  thn_0)))
                                            (list
                                             'if
                                             app_0
                                             app_1
                                             (optimize*_0
                                              imports_0
                                              knowns_0
                                              mutated_0
                                              prim-knowns_0
                                              primitives_0
                                              unsafe-mode?_0
                                              els_0)))))
                                       (args
                                        (raise-binding-result-arity-error
                                         3
                                         args))))
                                     (if (if (eq? 'with-continuation-mark hd_0)
                                           (let ((a_0 (cdr (unwrap v_0))))
                                             (let ((p_0 (unwrap a_0)))
                                               (if (pair? p_0)
                                                 (let ((a_1 (cdr p_0)))
                                                   (let ((p_1 (unwrap a_1)))
                                                     (if (pair? p_1)
                                                       (let ((a_2 (cdr p_1)))
                                                         (let ((p_2
                                                                (unwrap a_2)))
                                                           (if (pair? p_2)
                                                             (let ((a_3
                                                                    (cdr p_2)))
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_3))))
                                                             #f)))
                                                       #f)))
                                                 #f)))
                                           #f)
                                       (call-with-values
                                        (lambda ()
                                          (let ((d_0 (cdr (unwrap v_0))))
                                            (let ((p_0 (unwrap d_0)))
                                              (let ((key_0
                                                     (let ((a_0 (car p_0)))
                                                       a_0)))
                                                (call-with-values
                                                 (lambda ()
                                                   (let ((d_1 (cdr p_0)))
                                                     (let ((p_1 (unwrap d_1)))
                                                       (let ((val_0
                                                              (let ((a_0
                                                                     (car
                                                                      p_1)))
                                                                a_0)))
                                                         (let ((body_0
                                                                (let ((d_2
                                                                       (cdr
                                                                        p_1)))
                                                                  (let ((a_0
                                                                         (car
                                                                          (unwrap
                                                                           d_2))))
                                                                    a_0))))
                                                           (let ((val_1 val_0))
                                                             (values
                                                              val_1
                                                              body_0)))))))
                                                 (case-lambda
                                                  ((val_0 body_0)
                                                   (let ((key_1 key_0))
                                                     (values
                                                      key_1
                                                      val_0
                                                      body_0)))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    2
                                                    args))))))))
                                        (case-lambda
                                         ((key_0 val_0 body_0)
                                          (let ((app_0
                                                 (optimize*_0
                                                  imports_0
                                                  knowns_0
                                                  mutated_0
                                                  prim-knowns_0
                                                  primitives_0
                                                  unsafe-mode?_0
                                                  key_0)))
                                            (let ((app_1
                                                   (optimize*_0
                                                    imports_0
                                                    knowns_0
                                                    mutated_0
                                                    prim-knowns_0
                                                    primitives_0
                                                    unsafe-mode?_0
                                                    val_0)))
                                              (list
                                               'with-continuation-mark
                                               app_0
                                               app_1
                                               (optimize*_0
                                                imports_0
                                                knowns_0
                                                mutated_0
                                                prim-knowns_0
                                                primitives_0
                                                unsafe-mode?_0
                                                body_0)))))
                                         (args
                                          (raise-binding-result-arity-error
                                           3
                                           args))))
                                       (if (if (eq? 'begin hd_0)
                                             (let ((a_0 (cdr (unwrap v_0))))
                                               (wrap-list? a_0))
                                             #f)
                                         (let ((body_0
                                                (let ((d_0 (cdr (unwrap v_0))))
                                                  (unwrap-list d_0))))
                                           (list*
                                            'begin
                                            (optimize*-body_0
                                             imports_0
                                             knowns_0
                                             mutated_0
                                             prim-knowns_0
                                             primitives_0
                                             unsafe-mode?_0
                                             body_0)))
                                         (if (if (eq? 'begin0 hd_0)
                                               (let ((a_0 (cdr (unwrap v_0))))
                                                 (let ((p_0 (unwrap a_0)))
                                                   (if (pair? p_0)
                                                     (let ((a_1 (cdr p_0)))
                                                       (wrap-list? a_1))
                                                     #f)))
                                               #f)
                                           (call-with-values
                                            (lambda ()
                                              (let ((d_0 (cdr (unwrap v_0))))
                                                (let ((p_0 (unwrap d_0)))
                                                  (let ((e_0
                                                         (let ((a_0 (car p_0)))
                                                           a_0)))
                                                    (let ((body_0
                                                           (let ((d_1
                                                                  (cdr p_0)))
                                                             (unwrap-list
                                                              d_1))))
                                                      (let ((e_1 e_0))
                                                        (values
                                                         e_1
                                                         body_0)))))))
                                            (case-lambda
                                             ((e_0 body_0)
                                              (let ((app_0
                                                     (optimize*_0
                                                      imports_0
                                                      knowns_0
                                                      mutated_0
                                                      prim-knowns_0
                                                      primitives_0
                                                      unsafe-mode?_0
                                                      e_0)))
                                                (list*
                                                 'begin0
                                                 app_0
                                                 (optimize*-body_0
                                                  imports_0
                                                  knowns_0
                                                  mutated_0
                                                  prim-knowns_0
                                                  primitives_0
                                                  unsafe-mode?_0
                                                  body_0))))
                                             (args
                                              (raise-binding-result-arity-error
                                               2
                                               args))))
                                           (if (if (eq? 'set! hd_0)
                                                 (let ((a_0
                                                        (cdr (unwrap v_0))))
                                                   (let ((p_0 (unwrap a_0)))
                                                     (if (pair? p_0)
                                                       (let ((a_1 (cdr p_0)))
                                                         (let ((p_1
                                                                (unwrap a_1)))
                                                           (if (pair? p_1)
                                                             (let ((a_2
                                                                    (cdr p_1)))
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_2))))
                                                             #f)))
                                                       #f)))
                                                 #f)
                                             (call-with-values
                                              (lambda ()
                                                (let ((d_0 (cdr (unwrap v_0))))
                                                  (let ((p_0 (unwrap d_0)))
                                                    (let ((id_0
                                                           (let ((a_0
                                                                  (car p_0)))
                                                             a_0)))
                                                      (let ((rhs_0
                                                             (let ((d_1
                                                                    (cdr p_0)))
                                                               (let ((a_0
                                                                      (car
                                                                       (unwrap
                                                                        d_1))))
                                                                 a_0))))
                                                        (let ((id_1 id_0))
                                                          (values
                                                           id_1
                                                           rhs_0)))))))
                                              (case-lambda
                                               ((id_0 rhs_0)
                                                (list
                                                 'set!
                                                 id_0
                                                 (optimize*_0
                                                  imports_0
                                                  knowns_0
                                                  mutated_0
                                                  prim-knowns_0
                                                  primitives_0
                                                  unsafe-mode?_0
                                                  rhs_0)))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args))))
                                             (if (if (eq?
                                                      'variable-reference-from-unsafe?
                                                      hd_0)
                                                   (let ((a_0
                                                          (cdr (unwrap v_0))))
                                                     (let ((p_0 (unwrap a_0)))
                                                       (if (pair? p_0)
                                                         (if (let ((a_1
                                                                    (car p_0)))
                                                               (let ((p_1
                                                                      (unwrap
                                                                       a_1)))
                                                                 (if (pair?
                                                                      p_1)
                                                                   (if (let ((a_2
                                                                              (car
                                                                               p_1)))
                                                                         (let ((app_0
                                                                                (unwrap
                                                                                 '|#%variable-reference|)))
                                                                           (eq?
                                                                            app_0
                                                                            (unwrap
                                                                             a_2))))
                                                                     (let ((a_2
                                                                            (cdr
                                                                             p_1)))
                                                                       (let ((app_0
                                                                              (unwrap
                                                                               '())))
                                                                         (eq?
                                                                          app_0
                                                                          (unwrap
                                                                           a_2))))
                                                                     #f)
                                                                   #f)))
                                                           (let ((a_1
                                                                  (cdr p_0)))
                                                             (let ((app_0
                                                                    (unwrap
                                                                     '())))
                                                               (eq?
                                                                app_0
                                                                (unwrap a_1))))
                                                           #f)
                                                         #f)))
                                                   #f)
                                               unsafe-mode?_0
                                               (if (if (eq?
                                                        '|#%variable-reference|
                                                        hd_0)
                                                     (let ((a_0
                                                            (cdr
                                                             (unwrap v_0))))
                                                       (let ((app_0
                                                              (unwrap '())))
                                                         (eq?
                                                          app_0
                                                          (unwrap a_0))))
                                                     #f)
                                                 v_0
                                                 (if (if (eq?
                                                          '|#%variable-reference|
                                                          hd_0)
                                                       (let ((a_0
                                                              (cdr
                                                               (unwrap v_0))))
                                                         (let ((p_0
                                                                (unwrap a_0)))
                                                           (if (pair? p_0)
                                                             (let ((a_1
                                                                    (cdr p_0)))
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_1))))
                                                             #f)))
                                                       #f)
                                                   (let ((id_0
                                                          (let ((d_0
                                                                 (cdr
                                                                  (unwrap
                                                                   v_0))))
                                                            (let ((a_0
                                                                   (car
                                                                    (unwrap
                                                                     d_0))))
                                                              a_0))))
                                                     v_0)
                                                   (if (if (eq? 'quote hd_0)
                                                         (let ((a_0
                                                                (cdr
                                                                 (unwrap
                                                                  v_0))))
                                                           (let ((p_0
                                                                  (unwrap
                                                                   a_0)))
                                                             (if (pair? p_0)
                                                               (let ((a_1
                                                                      (cdr
                                                                       p_0)))
                                                                 (let ((app_0
                                                                        (unwrap
                                                                         '())))
                                                                   (eq?
                                                                    app_0
                                                                    (unwrap
                                                                     a_1))))
                                                               #f)))
                                                         #f)
                                                     v_0
                                                     (if (let ((p_0
                                                                (unwrap v_0)))
                                                           (if (pair? p_0)
                                                             (let ((a_0
                                                                    (cdr p_0)))
                                                               (wrap-list?
                                                                a_0))
                                                             #f))
                                                       (call-with-values
                                                        (lambda ()
                                                          (let ((p_0
                                                                 (unwrap v_0)))
                                                            (let ((rator_0
                                                                   (let ((a_0
                                                                          (car
                                                                           p_0)))
                                                                     a_0)))
                                                              (let ((exps_0
                                                                     (let ((d_0
                                                                            (cdr
                                                                             p_0)))
                                                                       (unwrap-list
                                                                        d_0))))
                                                                (let ((rator_1
                                                                       rator_0))
                                                                  (values
                                                                   rator_1
                                                                   exps_0))))))
                                                        (case-lambda
                                                         ((rator_0 exps_0)
                                                          (let ((app_0
                                                                 (optimize*_0
                                                                  imports_0
                                                                  knowns_0
                                                                  mutated_0
                                                                  prim-knowns_0
                                                                  primitives_0
                                                                  unsafe-mode?_0
                                                                  rator_0)))
                                                            (list*
                                                             app_0
                                                             (optimize*-body_0
                                                              imports_0
                                                              knowns_0
                                                              mutated_0
                                                              prim-knowns_0
                                                              primitives_0
                                                              unsafe-mode?_0
                                                              exps_0))))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args))))
                                                       v_0))))))))))))))))))
                   (optimize
                    new-v_0
                    prim-knowns_0
                    primitives_0
                    knowns_0
                    imports_0
                    mutated_0)))))))
    (lambda (v_0
             prim-knowns_0
             primitives_0
             knowns_0
             imports_0
             mutated_0
             unsafe-mode?_0)
      (optimize*_0
       imports_0
       knowns_0
       mutated_0
       prim-knowns_0
       primitives_0
       unsafe-mode?_0
       v_0))))
(define parameter-result?
  (lambda (v_0 prim-knowns_0 knowns_0 mutated_0)
    (if (pair? (unwrap v_0))
      (let ((u-rator_0 (unwrap (wrap-car v_0))))
        (let ((or-part_0 (eq? u-rator_0 'make-parameter)))
          (if or-part_0
            or-part_0
            (let ((or-part_1 (eq? u-rator_0 'derived-parameter)))
              (if or-part_1
                or-part_1
                (let ((or-part_2 (eq? u-rator_0 'make-pthread-parameter)))
                  (if or-part_2
                    or-part_2
                    (if (symbol? u-rator_0)
                      (let ((k_0 (hash-ref knowns_0 u-rator_0 #f)))
                        (if (known-copy? k_0)
                          (let ((id_0 (known-copy-id k_0)))
                            (let ((or-part_3 (eq? 'make-parameter id_0)))
                              (if or-part_3
                                or-part_3
                                (let ((or-part_4
                                       (eq? 'make-derived-parameter id_0)))
                                  (if or-part_4
                                    or-part_4
                                    (eq? 'make-pthread-parameter id_0))))))
                          #f))
                      #f))))))))
      #f)))
(define constructed-procedure-arity-mask
  (lambda (v_0)
    (let ((hd_0
           (let ((p_0 (unwrap v_0))) (if (pair? p_0) (unwrap (car p_0)) #f))))
      (if (if (eq? 'make-struct-field-accessor hd_0) #t #f)
        1
        (if (if (eq? 'make-struct-field-mutator hd_0) #t #f) 2 #f)))))
(define truncate-path
  (lambda (p_0)
    (call-with-values
     (lambda () (split-path p_0))
     (case-lambda
      ((base1_0 name1_0 dir?_0)
       (if (path-for-some-system? base1_0)
         (call-with-values
          (lambda () (split-path base1_0))
          (case-lambda
           ((base2_0 name2_0 dir?_1)
            (if (not base2_0)
              (path-for-some-system->string p_0)
              (if (symbol? name2_0)
                (string-append ".../" (path-elem->string name1_0))
                (let ((app_0 (path-for-some-system->string name2_0)))
                  (string-append
                   ".../"
                   app_0
                   "/"
                   (path-elem->string name1_0))))))
           (args (raise-binding-result-arity-error 3 args))))
         (if (eq? base1_0 'relative)
           (path-elem->string name1_0)
           (path-for-some-system->string p_0))))
      (args (raise-binding-result-arity-error 3 args))))))
(define path-elem->string
  (lambda (p_0)
    (if (eq? p_0 'same)
      "."
      (if (eq? p_0 'up) ".." (path-for-some-system->string p_0)))))
(define path-for-some-system->string
  (lambda (p_0)
    (if (path? p_0)
      (path->string p_0)
      (bytes->string/utf-8 (path->bytes p_0) '#\xfffd))))
(define wrap-truncate-paths
  (lambda (e_0)
    (if (syntax? e_0)
      (let ((orig_0 (unwrap e_0)))
        (let ((u-e_0 (wrap-truncate-paths orig_0)))
          (call-with-values
           (lambda () (wrap-source e_0))
           (case-lambda
            ((src_0 line_0 col_0 pos_0 span_0)
             (if (if (not (path-for-some-system? src_0)) (eq? orig_0 u-e_0) #f)
               e_0
               (if (path-for-some-system? src_0)
                 (let ((new-srcloc_0
                        (unsafe-make-srcloc
                         (truncate-path src_0)
                         line_0
                         col_0
                         pos_0
                         span_0)))
                   (datum->syntax #f u-e_0 new-srcloc_0 e_0))
                 (reannotate e_0 u-e_0))))
            (args (raise-binding-result-arity-error 5 args))))))
      (if (pair? e_0)
        (let ((a_0 (wrap-truncate-paths (car e_0))))
          (let ((d_0 (wrap-truncate-paths (cdr e_0))))
            (if (if (eq? a_0 (car e_0)) (eq? d_0 (cdr e_0)) #f)
              e_0
              (cons a_0 d_0))))
        e_0))))
(define inline-base 3)
(define inline-factor 3)
(define init-inline-fuel 8)
(define can-inline?
  (lambda (v_0)
    (let ((hd_0
           (let ((p_0 (unwrap v_0))) (if (pair? p_0) (unwrap (car p_0)) #f))))
      (if (if (eq? 'lambda hd_0)
            (let ((a_0 (cdr (unwrap v_0))))
              (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
            #f)
        (call-with-values
         (lambda ()
           (let ((d_0 (cdr (unwrap v_0))))
             (let ((p_0 (unwrap d_0)))
               (let ((args_0 (let ((a_0 (car p_0))) a_0)))
                 (let ((bodys_0 (let ((d_1 (cdr p_0))) d_1)))
                   (let ((args_1 args_0)) (values args_1 bodys_0)))))))
         (case-lambda
          ((args_0 bodys_0)
           (smaller-than? bodys_0 (+ 3 (* 3 (args-size args_0)))))
          (args (raise-binding-result-arity-error 2 args))))
        (if (if (eq? 'case-lambda hd_0)
              (let ((a_0 (cdr (unwrap v_0))))
                (if (wrap-list? a_0)
                  (begin
                    (letrec*
                     ((for-loop_0
                       (|#%name|
                        for-loop
                        (lambda (result_0 lst_0)
                          (begin
                            (if (not (null? (unwrap lst_0)))
                              (let ((v_1
                                     (if (pair? (unwrap lst_0))
                                       (wrap-car lst_0)
                                       lst_0)))
                                (let ((rest_0
                                       (if (pair? (unwrap lst_0))
                                         (wrap-cdr lst_0)
                                         null)))
                                  (let ((v_2 v_1))
                                    (let ((result_1
                                           (let ((result_1
                                                  (let ((p_0 (unwrap v_2)))
                                                    (if (pair? p_0) #t #f))))
                                             (values result_1))))
                                      (if (if (not
                                               (let ((x_0 (list v_2)))
                                                 (not result_1)))
                                            #t
                                            #f)
                                        (for-loop_0 result_1 rest_0)
                                        result_1)))))
                              result_0))))))
                     (for-loop_0 #t a_0)))
                  #f))
              #f)
          (call-with-values
           (lambda ()
             (let ((d_0 (cdr (unwrap v_0))))
               (call-with-values
                (lambda ()
                  (begin
                    (letrec*
                     ((for-loop_0
                       (|#%name|
                        for-loop
                        (lambda (argss_0 bodyss_0 lst_0)
                          (begin
                            (if (not (null? (unwrap lst_0)))
                              (let ((v_1
                                     (if (pair? (unwrap lst_0))
                                       (wrap-car lst_0)
                                       lst_0)))
                                (let ((rest_0
                                       (if (pair? (unwrap lst_0))
                                         (wrap-cdr lst_0)
                                         null)))
                                  (let ((v_2 v_1))
                                    (call-with-values
                                     (lambda ()
                                       (call-with-values
                                        (lambda ()
                                          (call-with-values
                                           (lambda ()
                                             (let ((p_0 (unwrap v_2)))
                                               (let ((argss_1
                                                      (let ((a_0 (car p_0)))
                                                        a_0)))
                                                 (let ((bodyss_1
                                                        (let ((d_1 (cdr p_0)))
                                                          d_1)))
                                                   (let ((argss_2 argss_1))
                                                     (values
                                                      argss_2
                                                      bodyss_1))))))
                                           (case-lambda
                                            ((argss1_0 bodyss2_0)
                                             (values
                                              (cons argss1_0 argss_0)
                                              (cons bodyss2_0 bodyss_0)))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args)))))
                                        (case-lambda
                                         ((argss_1 bodyss_1)
                                          (values argss_1 bodyss_1))
                                         (args
                                          (raise-binding-result-arity-error
                                           2
                                           args)))))
                                     (case-lambda
                                      ((argss_1 bodyss_1)
                                       (for-loop_0 argss_1 bodyss_1 rest_0))
                                      (args
                                       (raise-binding-result-arity-error
                                        2
                                        args)))))))
                              (values argss_0 bodyss_0)))))))
                     (for-loop_0 null null d_0))))
                (case-lambda
                 ((argss_0 bodyss_0)
                  (let ((app_0 (reverse$1 argss_0)))
                    (values app_0 (reverse$1 bodyss_0))))
                 (args (raise-binding-result-arity-error 2 args))))))
           (case-lambda
            ((argss_0 bodyss_0)
             (begin
               (letrec*
                ((for-loop_0
                  (|#%name|
                   for-loop
                   (lambda (result_0 lst_0 lst_1)
                     (begin
                       (if (if (pair? lst_0) (pair? lst_1) #f)
                         (let ((args_0 (unsafe-car lst_0)))
                           (let ((rest_0 (unsafe-cdr lst_0)))
                             (let ((bodys_0 (unsafe-car lst_1)))
                               (let ((rest_1 (unsafe-cdr lst_1)))
                                 (let ((result_1
                                        (let ((result_1
                                               (smaller-than?
                                                bodys_0
                                                (+
                                                 3
                                                 (* 3 (args-size args_0))))))
                                          (values result_1))))
                                   (if (if (not
                                            (let ((x_0 (list args_0)))
                                              (not result_1)))
                                         (if (not
                                              (let ((x_0 (list bodys_0)))
                                                (not result_1)))
                                           #t
                                           #f)
                                         #f)
                                     (for-loop_0 result_1 rest_0 rest_1)
                                     result_1))))))
                         result_0))))))
                (for-loop_0 #t argss_0 bodyss_0))))
            (args (raise-binding-result-arity-error 2 args))))
          #f)))))
(define args-size
  (lambda (args_0)
    (if (pair? (unwrap args_0)) (+ 1 (args-size (wrap-cdr args_0))) 1)))
(define smaller-than?
  (letrec ((loop_0
            (|#%name|
             loop
             (lambda (v_0 size_0)
               (begin
                 (if (zero? size_0)
                   0
                   (if (pair? (unwrap v_0))
                     (if (eq? (unwrap (wrap-car v_0)) 'quote)
                       (let ((v_1 (unwrap (wrap-car (wrap-cdr v_0)))))
                         (if (if (symbol? v_1)
                               (let ((or-part_0 (symbol-interned? v_1)))
                                 (if or-part_0
                                   or-part_0
                                   (symbol-unreadable? v_1)))
                               #f)
                           (sub1 size_0)
                           0))
                       (let ((app_0 (wrap-cdr v_0)))
                         (loop_0 app_0 (loop_0 (wrap-car v_0) size_0))))
                     (sub1 size_0))))))))
    (lambda (v_0 size_0) (positive? (loop_0 v_0 size_0)))))
(define inline-clone
  (lambda (k_0 im_0 add-import!_0 mutated_0 imports_0)
    (let ((env_0
           (if (known-procedure/can-inline/need-imports? k_0)
             (needed->env
              (known-procedure/can-inline/need-imports-needed k_0)
              add-import!_0
              im_0)
             '())))
      (if env_0
        (let ((v_0 (known-procedure/can-inline-expr k_0)))
          (let ((hd_0
                 (let ((p_0 (unwrap v_0)))
                   (if (pair? p_0) (unwrap (car p_0)) #f))))
            (if (if (eq? 'lambda hd_0)
                  (let ((a_0 (cdr (unwrap v_0))))
                    (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
                  #f)
              (call-with-values
               (lambda ()
                 (let ((d_0 (cdr (unwrap v_0))))
                   (let ((p_0 (unwrap d_0)))
                     (let ((args_0 (let ((a_0 (car p_0))) a_0)))
                       (let ((bodys_0 (let ((d_1 (cdr p_0))) d_1)))
                         (let ((args_1 args_0)) (values args_1 bodys_0)))))))
               (case-lambda
                ((args_0 bodys_0)
                 (call-with-values
                  (lambda () (clone-args args_0 env_0 mutated_0))
                  (case-lambda
                   ((new-args_0 new-env_0)
                    (list*
                     'lambda
                     new-args_0
                     (clone-body bodys_0 new-env_0 mutated_0)))
                   (args (raise-binding-result-arity-error 2 args)))))
                (args (raise-binding-result-arity-error 2 args))))
              (if (if (eq? 'case-lambda hd_0)
                    (let ((a_0 (cdr (unwrap v_0))))
                      (if (wrap-list? a_0)
                        (begin
                          (letrec*
                           ((for-loop_0
                             (|#%name|
                              for-loop
                              (lambda (result_0 lst_0)
                                (begin
                                  (if (not (null? (unwrap lst_0)))
                                    (let ((v_1
                                           (if (pair? (unwrap lst_0))
                                             (wrap-car lst_0)
                                             lst_0)))
                                      (let ((rest_0
                                             (if (pair? (unwrap lst_0))
                                               (wrap-cdr lst_0)
                                               null)))
                                        (let ((v_2 v_1))
                                          (let ((result_1
                                                 (let ((result_1
                                                        (let ((p_0
                                                               (unwrap v_2)))
                                                          (if (pair? p_0)
                                                            #t
                                                            #f))))
                                                   (values result_1))))
                                            (if (if (not
                                                     (let ((x_0 (list v_2)))
                                                       (not result_1)))
                                                  #t
                                                  #f)
                                              (for-loop_0 result_1 rest_0)
                                              result_1)))))
                                    result_0))))))
                           (for-loop_0 #t a_0)))
                        #f))
                    #f)
                (call-with-values
                 (lambda ()
                   (let ((d_0 (cdr (unwrap v_0))))
                     (call-with-values
                      (lambda ()
                        (begin
                          (letrec*
                           ((for-loop_0
                             (|#%name|
                              for-loop
                              (lambda (argss_0 bodyss_0 lst_0)
                                (begin
                                  (if (not (null? (unwrap lst_0)))
                                    (let ((v_1
                                           (if (pair? (unwrap lst_0))
                                             (wrap-car lst_0)
                                             lst_0)))
                                      (let ((rest_0
                                             (if (pair? (unwrap lst_0))
                                               (wrap-cdr lst_0)
                                               null)))
                                        (let ((v_2 v_1))
                                          (call-with-values
                                           (lambda ()
                                             (call-with-values
                                              (lambda ()
                                                (call-with-values
                                                 (lambda ()
                                                   (let ((p_0 (unwrap v_2)))
                                                     (let ((argss_1
                                                            (let ((a_0
                                                                   (car p_0)))
                                                              a_0)))
                                                       (let ((bodyss_1
                                                              (let ((d_1
                                                                     (cdr
                                                                      p_0)))
                                                                d_1)))
                                                         (let ((argss_2
                                                                argss_1))
                                                           (values
                                                            argss_2
                                                            bodyss_1))))))
                                                 (case-lambda
                                                  ((argss3_0 bodyss4_0)
                                                   (values
                                                    (cons argss3_0 argss_0)
                                                    (cons bodyss4_0 bodyss_0)))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    2
                                                    args)))))
                                              (case-lambda
                                               ((argss_1 bodyss_1)
                                                (values argss_1 bodyss_1))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args)))))
                                           (case-lambda
                                            ((argss_1 bodyss_1)
                                             (for-loop_0
                                              argss_1
                                              bodyss_1
                                              rest_0))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args)))))))
                                    (values argss_0 bodyss_0)))))))
                           (for-loop_0 null null d_0))))
                      (case-lambda
                       ((argss_0 bodyss_0)
                        (let ((app_0 (reverse$1 argss_0)))
                          (values app_0 (reverse$1 bodyss_0))))
                       (args (raise-binding-result-arity-error 2 args))))))
                 (case-lambda
                  ((argss_0 bodyss_0)
                   (list*
                    'case-lambda
                    (reverse$1
                     (begin
                       (letrec*
                        ((for-loop_0
                          (|#%name|
                           for-loop
                           (lambda (fold-var_0 lst_0 lst_1)
                             (begin
                               (if (if (pair? lst_0) (pair? lst_1) #f)
                                 (let ((args_0 (unsafe-car lst_0)))
                                   (let ((rest_0 (unsafe-cdr lst_0)))
                                     (let ((bodys_0 (unsafe-car lst_1)))
                                       (let ((rest_1 (unsafe-cdr lst_1)))
                                         (let ((fold-var_1
                                                (let ((fold-var_1
                                                       (cons
                                                        (call-with-values
                                                         (lambda ()
                                                           (clone-args
                                                            args_0
                                                            env_0
                                                            mutated_0))
                                                         (case-lambda
                                                          ((new-args_0
                                                            new-env_0)
                                                           (list*
                                                            new-args_0
                                                            (clone-body
                                                             bodys_0
                                                             new-env_0
                                                             mutated_0)))
                                                          (args
                                                           (raise-binding-result-arity-error
                                                            2
                                                            args))))
                                                        fold-var_0)))
                                                  (values fold-var_1))))
                                           (for-loop_0
                                            fold-var_1
                                            rest_0
                                            rest_1))))))
                                 fold-var_0))))))
                        (for-loop_0 null argss_0 bodyss_0))))))
                  (args (raise-binding-result-arity-error 2 args))))
                (let ((c1_0 (hash-ref imports_0 (unwrap v_0) #f)))
                  (if c1_0
                    (let ((i-k_0 (import-lookup c1_0)))
                      (if (known-procedure/can-inline? i-k_0)
                        (inline-clone
                         i-k_0
                         c1_0
                         add-import!_0
                         mutated_0
                         imports_0)
                        #f))
                    #f))))))
        #f))))
(define inline-type-id
  (lambda (k_0 im_0 add-import!_0 mutated_0 imports_0)
    (let ((type-id_0
           (if (known-struct-predicate? k_0)
             (known-struct-predicate-type-id k_0)
             (if (known-field-accessor? k_0)
               (known-field-accessor-type-id k_0)
               (if (known-field-mutator? k_0)
                 (known-field-mutator-type-id k_0)
                 #f)))))
      (let ((env_0
             (if (not type-id_0)
               #f
               (if (not im_0)
                 '()
                 (if (known-struct-predicate/need-imports? k_0)
                   (needed->env
                    (known-struct-predicate/need-imports-needed k_0)
                    add-import!_0
                    im_0)
                   (if (known-field-accessor/need-imports? k_0)
                     (needed->env
                      (known-field-accessor/need-imports-needed k_0)
                      add-import!_0
                      im_0)
                     (if (known-field-mutator/need-imports? k_0)
                       (needed->env
                        (known-field-mutator/need-imports-needed k_0)
                        add-import!_0
                        im_0)
                       '())))))))
        (if env_0
          (if (null? env_0) type-id_0 (clone-expr type-id_0 env_0 mutated_0))
          #f)))))
(define needed->env
  (lambda (needed_0 add-import!_0 im_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (env_0 lst_0)
            (begin
              (if (pair? lst_0)
                (let ((need_0 (unsafe-car lst_0)))
                  (let ((rest_0 (unsafe-cdr lst_0)))
                    (let ((env_1
                           (let ((env_1
                                  (if env_0
                                    (let ((id_0
                                           (let ((app_0 (cadr need_0)))
                                             (|#%app|
                                              add-import!_0
                                              im_0
                                              app_0
                                              (cddr need_0)))))
                                      (if id_0
                                        (cons (cons (car need_0) id_0) env_0)
                                        #f))
                                    #f)))
                             (values env_1))))
                      (for-loop_0 env_1 rest_0))))
                env_0))))))
       (for-loop_0 '() needed_0)))))
(define clone-args
  (letrec ((loop_0
            (|#%name|
             loop
             (lambda (base-env_0 mutated_0 args_0)
               (begin
                 (if (null? (unwrap args_0))
                   base-env_0
                   (if (pair? (unwrap args_0))
                     (let ((u_0 (unwrap (wrap-car args_0))))
                       (let ((g_0 (deterministic-gensym u_0)))
                         (let ((m_0 (hash-ref mutated_0 u_0 #f)))
                           (begin
                             (if m_0 (hash-set! mutated_0 g_0 m_0) (void))
                             (cons
                              (cons u_0 g_0)
                              (loop_0
                               base-env_0
                               mutated_0
                               (wrap-cdr args_0)))))))
                     (let ((u_0 (unwrap args_0)))
                       (cons
                        (cons u_0 (deterministic-gensym u_0))
                        base-env_0))))))))
           (loop_1
            (|#%name|
             loop
             (lambda (args_0 env_0)
               (begin
                 (if (null? (unwrap args_0))
                   '()
                   (if (pair? (unwrap args_0))
                     (let ((u_0 (unwrap (wrap-car args_0))))
                       (let ((app_0 (cdr (car env_0))))
                         (cons
                          app_0
                          (let ((app_1 (wrap-cdr args_0)))
                            (loop_1 app_1 (cdr env_0))))))
                     (cdr (car env_0)))))))))
    (lambda (args_0 base-env_0 mutated_0)
      (let ((env_0 (loop_0 base-env_0 mutated_0 args_0)))
        (values (loop_1 args_0 env_0) env_0)))))
(define clone-body
  (lambda (l_0 env_0 mutated_0)
    (reverse$1
     (begin
       (letrec*
        ((for-loop_0
          (|#%name|
           for-loop
           (lambda (fold-var_0 lst_0)
             (begin
               (if (not (null? (unwrap lst_0)))
                 (let ((e_0
                        (if (pair? (unwrap lst_0)) (wrap-car lst_0) lst_0)))
                   (let ((rest_0
                          (if (pair? (unwrap lst_0)) (wrap-cdr lst_0) null)))
                     (let ((e_1 e_0))
                       (let ((fold-var_1
                              (let ((fold-var_1
                                     (cons
                                      (clone-expr e_1 env_0 mutated_0)
                                      fold-var_0)))
                                (values fold-var_1))))
                         (for-loop_0 fold-var_1 rest_0)))))
                 fold-var_0))))))
        (for-loop_0 null l_0))))))
(define clone-let
  (lambda (v_0 env_0 mutated_0)
    (if (let ((p_0 (unwrap v_0)))
          (if (pair? p_0)
            (let ((a_0 (cdr p_0)))
              (let ((p_1 (unwrap a_0)))
                (if (pair? p_1)
                  (if (let ((a_1 (car p_1)))
                        (if (wrap-list? a_1)
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (result_0 lst_0)
                                  (begin
                                    (if (not (null? (unwrap lst_0)))
                                      (let ((v_1
                                             (if (pair? (unwrap lst_0))
                                               (wrap-car lst_0)
                                               lst_0)))
                                        (let ((rest_0
                                               (if (pair? (unwrap lst_0))
                                                 (wrap-cdr lst_0)
                                                 null)))
                                          (let ((v_2 v_1))
                                            (let ((result_1
                                                   (let ((result_1
                                                          (let ((p_2
                                                                 (unwrap v_2)))
                                                            (if (pair? p_2)
                                                              (let ((a_2
                                                                     (cdr
                                                                      p_2)))
                                                                (let ((p_3
                                                                       (unwrap
                                                                        a_2)))
                                                                  (if (pair?
                                                                       p_3)
                                                                    (let ((a_3
                                                                           (cdr
                                                                            p_3)))
                                                                      (let ((app_0
                                                                             (unwrap
                                                                              '())))
                                                                        (eq?
                                                                         app_0
                                                                         (unwrap
                                                                          a_3))))
                                                                    #f)))
                                                              #f))))
                                                     (values result_1))))
                                              (if (if (not
                                                       (let ((x_0 (list v_2)))
                                                         (not result_1)))
                                                    #t
                                                    #f)
                                                (for-loop_0 result_1 rest_0)
                                                result_1)))))
                                      result_0))))))
                             (for-loop_0 #t a_1)))
                          #f))
                    (let ((a_1 (cdr p_1))) (wrap-list? a_1))
                    #f)
                  #f)))
            #f))
      (call-with-values
       (lambda ()
         (let ((p_0 (unwrap v_0)))
           (let ((let-id_0 (let ((a_0 (car p_0))) a_0)))
             (call-with-values
              (lambda ()
                (let ((d_0 (cdr p_0)))
                  (let ((p_1 (unwrap d_0)))
                    (call-with-values
                     (lambda ()
                       (let ((a_0 (car p_1)))
                         (call-with-values
                          (lambda ()
                            (begin
                              (letrec*
                               ((for-loop_0
                                 (|#%name|
                                  for-loop
                                  (lambda (idss_0 rhss_0 lst_0)
                                    (begin
                                      (if (not (null? (unwrap lst_0)))
                                        (let ((v_1
                                               (if (pair? (unwrap lst_0))
                                                 (wrap-car lst_0)
                                                 lst_0)))
                                          (let ((rest_0
                                                 (if (pair? (unwrap lst_0))
                                                   (wrap-cdr lst_0)
                                                   null)))
                                            (let ((v_2 v_1))
                                              (call-with-values
                                               (lambda ()
                                                 (call-with-values
                                                  (lambda ()
                                                    (call-with-values
                                                     (lambda ()
                                                       (let ((p_2
                                                              (unwrap v_2)))
                                                         (let ((idss_1
                                                                (let ((a_1
                                                                       (car
                                                                        p_2)))
                                                                  a_1)))
                                                           (let ((rhss_1
                                                                  (let ((d_1
                                                                         (cdr
                                                                          p_2)))
                                                                    (let ((a_1
                                                                           (car
                                                                            (unwrap
                                                                             d_1))))
                                                                      a_1))))
                                                             (let ((idss_2
                                                                    idss_1))
                                                               (values
                                                                idss_2
                                                                rhss_1))))))
                                                     (case-lambda
                                                      ((idss5_0 rhss6_0)
                                                       (values
                                                        (cons idss5_0 idss_0)
                                                        (cons rhss6_0 rhss_0)))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args)))))
                                                  (case-lambda
                                                   ((idss_1 rhss_1)
                                                    (values idss_1 rhss_1))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args)))))
                                               (case-lambda
                                                ((idss_1 rhss_1)
                                                 (for-loop_0
                                                  idss_1
                                                  rhss_1
                                                  rest_0))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  2
                                                  args)))))))
                                        (values idss_0 rhss_0)))))))
                               (for-loop_0 null null a_0))))
                          (case-lambda
                           ((idss_0 rhss_0)
                            (let ((app_0 (reverse$1 idss_0)))
                              (values app_0 (reverse$1 rhss_0))))
                           (args (raise-binding-result-arity-error 2 args))))))
                     (case-lambda
                      ((idss_0 rhss_0)
                       (let ((bodys_0
                              (let ((d_1 (cdr p_1))) (unwrap-list d_1))))
                         (let ((idss_1 idss_0) (rhss_1 rhss_0))
                           (values idss_1 rhss_1 bodys_0))))
                      (args (raise-binding-result-arity-error 2 args)))))))
              (case-lambda
               ((idss_0 rhss_0 bodys_0)
                (let ((let-id_1 let-id_0))
                  (values let-id_1 idss_0 rhss_0 bodys_0)))
               (args (raise-binding-result-arity-error 3 args)))))))
       (case-lambda
        ((let-id_0 idss_0 rhss_0 bodys_0)
         (call-with-values
          (lambda ()
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (rev-new-idss_0 env_1 lst_0)
                    (begin
                      (if (pair? lst_0)
                        (let ((ids_0 (unsafe-car lst_0)))
                          (let ((rest_0 (unsafe-cdr lst_0)))
                            (call-with-values
                             (lambda ()
                               (call-with-values
                                (lambda ()
                                  (call-with-values
                                   (lambda ()
                                     (clone-args ids_0 env_1 mutated_0))
                                   (case-lambda
                                    ((new-ids_0 new-env_0)
                                     (values
                                      (cons new-ids_0 rev-new-idss_0)
                                      new-env_0))
                                    (args
                                     (raise-binding-result-arity-error
                                      2
                                      args)))))
                                (case-lambda
                                 ((rev-new-idss_1 env_2)
                                  (values rev-new-idss_1 env_2))
                                 (args
                                  (raise-binding-result-arity-error 2 args)))))
                             (case-lambda
                              ((rev-new-idss_1 env_2)
                               (for-loop_0 rev-new-idss_1 env_2 rest_0))
                              (args
                               (raise-binding-result-arity-error 2 args))))))
                        (values rev-new-idss_0 env_1)))))))
               (for-loop_0 null env_0 idss_0))))
          (case-lambda
           ((rev-new-idss_0 new-env_0)
            (let ((app_0
                   (reverse$1
                    (let ((lst_0 (reverse$1 rev-new-idss_0)))
                      (begin
                        (letrec*
                         ((for-loop_0
                           (|#%name|
                            for-loop
                            (lambda (fold-var_0 lst_1 lst_2)
                              (begin
                                (if (if (pair? lst_1) (pair? lst_2) #f)
                                  (let ((ids_0 (unsafe-car lst_1)))
                                    (let ((rest_0 (unsafe-cdr lst_1)))
                                      (let ((rhs_0 (unsafe-car lst_2)))
                                        (let ((rest_1 (unsafe-cdr lst_2)))
                                          (let ((fold-var_1
                                                 (let ((fold-var_1
                                                        (cons
                                                         (list
                                                          ids_0
                                                          (clone-expr
                                                           rhs_0
                                                           new-env_0
                                                           mutated_0))
                                                         fold-var_0)))
                                                   (values fold-var_1))))
                                            (for-loop_0
                                             fold-var_1
                                             rest_0
                                             rest_1))))))
                                  fold-var_0))))))
                         (for-loop_0 null lst_0 rhss_0)))))))
              (list* let-id_0 app_0 (clone-body bodys_0 new-env_0 mutated_0))))
           (args (raise-binding-result-arity-error 2 args)))))
        (args (raise-binding-result-arity-error 4 args))))
      (error 'match "failed ~e" v_0))))
(define clone-expr
  (lambda (v_0 env_0 mutated_0)
    (reannotate
     v_0
     (let ((hd_0
            (let ((p_0 (unwrap v_0))) (if (pair? p_0) (unwrap (car p_0)) #f))))
       (if (if (eq? 'lambda hd_0)
             (let ((a_0 (cdr (unwrap v_0))))
               (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
             #f)
         (call-with-values
          (lambda ()
            (let ((d_0 (cdr (unwrap v_0))))
              (let ((p_0 (unwrap d_0)))
                (let ((args_0 (let ((a_0 (car p_0))) a_0)))
                  (let ((bodys_0 (let ((d_1 (cdr p_0))) d_1)))
                    (let ((args_1 args_0)) (values args_1 bodys_0)))))))
          (case-lambda
           ((args_0 bodys_0)
            (list* 'lambda args_0 (clone-body bodys_0 env_0 mutated_0)))
           (args (raise-binding-result-arity-error 2 args))))
         (if (if (eq? 'case-lambda hd_0)
               (let ((a_0 (cdr (unwrap v_0))))
                 (if (wrap-list? a_0)
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (result_0 lst_0)
                           (begin
                             (if (not (null? (unwrap lst_0)))
                               (let ((v_1
                                      (if (pair? (unwrap lst_0))
                                        (wrap-car lst_0)
                                        lst_0)))
                                 (let ((rest_0
                                        (if (pair? (unwrap lst_0))
                                          (wrap-cdr lst_0)
                                          null)))
                                   (let ((v_2 v_1))
                                     (let ((result_1
                                            (let ((result_1
                                                   (let ((p_0 (unwrap v_2)))
                                                     (if (pair? p_0) #t #f))))
                                              (values result_1))))
                                       (if (if (not
                                                (let ((x_0 (list v_2)))
                                                  (not result_1)))
                                             #t
                                             #f)
                                         (for-loop_0 result_1 rest_0)
                                         result_1)))))
                               result_0))))))
                      (for-loop_0 #t a_0)))
                   #f))
               #f)
           (call-with-values
            (lambda ()
              (let ((d_0 (cdr (unwrap v_0))))
                (call-with-values
                 (lambda ()
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (argss_0 bodyss_0 lst_0)
                           (begin
                             (if (not (null? (unwrap lst_0)))
                               (let ((v_1
                                      (if (pair? (unwrap lst_0))
                                        (wrap-car lst_0)
                                        lst_0)))
                                 (let ((rest_0
                                        (if (pair? (unwrap lst_0))
                                          (wrap-cdr lst_0)
                                          null)))
                                   (let ((v_2 v_1))
                                     (call-with-values
                                      (lambda ()
                                        (call-with-values
                                         (lambda ()
                                           (call-with-values
                                            (lambda ()
                                              (let ((p_0 (unwrap v_2)))
                                                (let ((argss_1
                                                       (let ((a_0 (car p_0)))
                                                         a_0)))
                                                  (let ((bodyss_1
                                                         (let ((d_1 (cdr p_0)))
                                                           d_1)))
                                                    (let ((argss_2 argss_1))
                                                      (values
                                                       argss_2
                                                       bodyss_1))))))
                                            (case-lambda
                                             ((argss7_0 bodyss8_0)
                                              (values
                                               (cons argss7_0 argss_0)
                                               (cons bodyss8_0 bodyss_0)))
                                             (args
                                              (raise-binding-result-arity-error
                                               2
                                               args)))))
                                         (case-lambda
                                          ((argss_1 bodyss_1)
                                           (values argss_1 bodyss_1))
                                          (args
                                           (raise-binding-result-arity-error
                                            2
                                            args)))))
                                      (case-lambda
                                       ((argss_1 bodyss_1)
                                        (for-loop_0 argss_1 bodyss_1 rest_0))
                                       (args
                                        (raise-binding-result-arity-error
                                         2
                                         args)))))))
                               (values argss_0 bodyss_0)))))))
                      (for-loop_0 null null d_0))))
                 (case-lambda
                  ((argss_0 bodyss_0)
                   (let ((app_0 (reverse$1 argss_0)))
                     (values app_0 (reverse$1 bodyss_0))))
                  (args (raise-binding-result-arity-error 2 args))))))
            (case-lambda
             ((argss_0 bodyss_0)
              (list*
               'case-lambda
               (reverse$1
                (begin
                  (letrec*
                   ((for-loop_0
                     (|#%name|
                      for-loop
                      (lambda (fold-var_0 lst_0 lst_1)
                        (begin
                          (if (if (pair? lst_0) (pair? lst_1) #f)
                            (let ((args_0 (unsafe-car lst_0)))
                              (let ((rest_0 (unsafe-cdr lst_0)))
                                (let ((bodys_0 (unsafe-car lst_1)))
                                  (let ((rest_1 (unsafe-cdr lst_1)))
                                    (let ((fold-var_1
                                           (let ((fold-var_1
                                                  (cons
                                                   (list*
                                                    args_0
                                                    (clone-body
                                                     bodys_0
                                                     env_0
                                                     mutated_0))
                                                   fold-var_0)))
                                             (values fold-var_1))))
                                      (for-loop_0
                                       fold-var_1
                                       rest_0
                                       rest_1))))))
                            fold-var_0))))))
                   (for-loop_0 null argss_0 bodyss_0))))))
             (args (raise-binding-result-arity-error 2 args))))
           (if (if (eq? 'quote hd_0)
                 (let ((a_0 (cdr (unwrap v_0))))
                   (let ((p_0 (unwrap a_0)))
                     (if (pair? p_0)
                       (let ((a_1 (cdr p_0)))
                         (let ((app_0 (unwrap '()))) (eq? app_0 (unwrap a_1))))
                       #f)))
                 #f)
             v_0
             (if (if (eq? 'let-values hd_0) #t #f)
               (clone-let v_0 env_0 mutated_0)
               (if (if (eq? 'letrec-values hd_0) #t #f)
                 (clone-let v_0 env_0 mutated_0)
                 (if (if (eq? 'if hd_0)
                       (let ((a_0 (cdr (unwrap v_0))))
                         (let ((p_0 (unwrap a_0)))
                           (if (pair? p_0)
                             (let ((a_1 (cdr p_0)))
                               (let ((p_1 (unwrap a_1)))
                                 (if (pair? p_1)
                                   (let ((a_2 (cdr p_1)))
                                     (let ((p_2 (unwrap a_2)))
                                       (if (pair? p_2)
                                         (let ((a_3 (cdr p_2)))
                                           (let ((app_0 (unwrap '())))
                                             (eq? app_0 (unwrap a_3))))
                                         #f)))
                                   #f)))
                             #f)))
                       #f)
                   (call-with-values
                    (lambda ()
                      (let ((d_0 (cdr (unwrap v_0))))
                        (let ((p_0 (unwrap d_0)))
                          (let ((tst_0 (let ((a_0 (car p_0))) a_0)))
                            (call-with-values
                             (lambda ()
                               (let ((d_1 (cdr p_0)))
                                 (let ((p_1 (unwrap d_1)))
                                   (let ((thn_0 (let ((a_0 (car p_1))) a_0)))
                                     (let ((els_0
                                            (let ((d_2 (cdr p_1)))
                                              (let ((a_0 (car (unwrap d_2))))
                                                a_0))))
                                       (let ((thn_1 thn_0))
                                         (values thn_1 els_0)))))))
                             (case-lambda
                              ((thn_0 els_0)
                               (let ((tst_1 tst_0))
                                 (values tst_1 thn_0 els_0)))
                              (args
                               (raise-binding-result-arity-error 2 args))))))))
                    (case-lambda
                     ((tst_0 thn_0 els_0)
                      (let ((app_0 (clone-expr tst_0 env_0 mutated_0)))
                        (let ((app_1 (clone-expr thn_0 env_0 mutated_0)))
                          (list
                           'if
                           app_0
                           app_1
                           (clone-expr els_0 env_0 mutated_0)))))
                     (args (raise-binding-result-arity-error 3 args))))
                   (if (if (eq? 'with-continuation-mark hd_0)
                         (let ((a_0 (cdr (unwrap v_0))))
                           (let ((p_0 (unwrap a_0)))
                             (if (pair? p_0)
                               (let ((a_1 (cdr p_0)))
                                 (let ((p_1 (unwrap a_1)))
                                   (if (pair? p_1)
                                     (let ((a_2 (cdr p_1)))
                                       (let ((p_2 (unwrap a_2)))
                                         (if (pair? p_2)
                                           (let ((a_3 (cdr p_2)))
                                             (let ((app_0 (unwrap '())))
                                               (eq? app_0 (unwrap a_3))))
                                           #f)))
                                     #f)))
                               #f)))
                         #f)
                     (call-with-values
                      (lambda ()
                        (let ((d_0 (cdr (unwrap v_0))))
                          (let ((p_0 (unwrap d_0)))
                            (let ((key_0 (let ((a_0 (car p_0))) a_0)))
                              (call-with-values
                               (lambda ()
                                 (let ((d_1 (cdr p_0)))
                                   (let ((p_1 (unwrap d_1)))
                                     (let ((val_0 (let ((a_0 (car p_1))) a_0)))
                                       (let ((body_0
                                              (let ((d_2 (cdr p_1)))
                                                (let ((a_0 (car (unwrap d_2))))
                                                  a_0))))
                                         (let ((val_1 val_0))
                                           (values val_1 body_0)))))))
                               (case-lambda
                                ((val_0 body_0)
                                 (let ((key_1 key_0))
                                   (values key_1 val_0 body_0)))
                                (args
                                 (raise-binding-result-arity-error
                                  2
                                  args))))))))
                      (case-lambda
                       ((key_0 val_0 body_0)
                        (let ((app_0 (clone-expr key_0 env_0 mutated_0)))
                          (let ((app_1 (clone-expr val_0 env_0 mutated_0)))
                            (list
                             'with-continuation-mark
                             app_0
                             app_1
                             (clone-expr body_0 env_0 mutated_0)))))
                       (args (raise-binding-result-arity-error 3 args))))
                     (if (if (eq? 'begin hd_0)
                           (let ((a_0 (cdr (unwrap v_0)))) (wrap-list? a_0))
                           #f)
                       (let ((exps_0
                              (let ((d_0 (cdr (unwrap v_0))))
                                (unwrap-list d_0))))
                         (list* 'begin (clone-body exps_0 env_0 mutated_0)))
                       (if (if (eq? 'begin0 hd_0)
                             (let ((a_0 (cdr (unwrap v_0)))) (wrap-list? a_0))
                             #f)
                         (let ((exps_0
                                (let ((d_0 (cdr (unwrap v_0))))
                                  (unwrap-list d_0))))
                           (list* 'begin0 (clone-body exps_0 env_0 mutated_0)))
                         (if (if (eq? 'set! hd_0)
                               (let ((a_0 (cdr (unwrap v_0))))
                                 (let ((p_0 (unwrap a_0)))
                                   (if (pair? p_0)
                                     (let ((a_1 (cdr p_0)))
                                       (let ((p_1 (unwrap a_1)))
                                         (if (pair? p_1)
                                           (let ((a_2 (cdr p_1)))
                                             (let ((app_0 (unwrap '())))
                                               (eq? app_0 (unwrap a_2))))
                                           #f)))
                                     #f)))
                               #f)
                           (call-with-values
                            (lambda ()
                              (let ((d_0 (cdr (unwrap v_0))))
                                (let ((p_0 (unwrap d_0)))
                                  (let ((id_0 (let ((a_0 (car p_0))) a_0)))
                                    (let ((rhs_0
                                           (let ((d_1 (cdr p_0)))
                                             (let ((a_0 (car (unwrap d_1))))
                                               a_0))))
                                      (let ((id_1 id_0))
                                        (values id_1 rhs_0)))))))
                            (case-lambda
                             ((id_0 rhs_0)
                              (list
                               'set!
                               id_0
                               (clone-expr rhs_0 env_0 mutated_0)))
                             (args (raise-binding-result-arity-error 2 args))))
                           (if (if (eq? '|#%variable-reference| hd_0)
                                 (let ((a_0 (cdr (unwrap v_0))))
                                   (let ((app_0 (unwrap '())))
                                     (eq? app_0 (unwrap a_0))))
                                 #f)
                             v_0
                             (if (if (eq? '|#%variable-reference| hd_0)
                                   (let ((a_0 (cdr (unwrap v_0))))
                                     (let ((p_0 (unwrap a_0)))
                                       (if (pair? p_0)
                                         (let ((a_1 (cdr p_0)))
                                           (let ((app_0 (unwrap '())))
                                             (eq? app_0 (unwrap a_1))))
                                         #f)))
                                   #f)
                               (let ((id_0
                                      (let ((d_0 (cdr (unwrap v_0))))
                                        (let ((a_0 (car (unwrap d_0)))) a_0))))
                                 (list
                                  '|#%variable-reference|
                                  (clone-expr id_0 env_0 mutated_0)))
                               (if (let ((p_0 (unwrap v_0)))
                                     (if (pair? p_0) #t #f))
                                 (let ((rator_0
                                        (let ((a_0 (car (unwrap v_0)))) a_0)))
                                   (clone-body v_0 env_0 mutated_0))
                                 (let ((u-v_0 (unwrap v_0)))
                                   (if (symbol? u-v_0)
                                     (lookup env_0 u-v_0 v_0)
                                     v_0)))))))))))))))))))
(define lookup
  (lambda (env_0 sym_0 default_0)
    (if (null? env_0)
      default_0
      (if (eq? (caar env_0) sym_0)
        (cdar env_0)
        (lookup (cdr env_0) sym_0 default_0)))))
(define known-inline->export-known
  (lambda (k_0 prim-knowns_0 imports_0 exports_0 serializable?_0)
    (if (known-procedure/can-inline? k_0)
      (let ((expr_0 (known-procedure/can-inline-expr k_0)))
        (let ((needed_0
               (needed-imports
                expr_0
                prim-knowns_0
                imports_0
                exports_0
                '()
                hash2610)))
          (if (not needed_0)
            (known-procedure (known-procedure-arity-mask k_0))
            (if (hash-empty? needed_0)
              (if serializable?_0
                (let ((app_0 (known-procedure-arity-mask k_0)))
                  (known-procedure/can-inline
                   app_0
                   (wrap-truncate-paths expr_0)))
                k_0)
              (let ((app_0 (known-procedure-arity-mask k_0)))
                (let ((app_1
                       (if serializable?_0
                         (wrap-truncate-paths expr_0)
                         expr_0)))
                  (known-procedure/can-inline/need-imports
                   app_0
                   app_1
                   (hash-map needed_0 cons #t))))))))
      (if (known-struct-predicate? k_0)
        (let ((needed_0
               (needed-imports
                (known-struct-predicate-type-id k_0)
                prim-knowns_0
                imports_0
                exports_0
                '()
                hash2610)))
          (if needed_0
            (let ((app_0 (known-procedure-arity-mask k_0)))
              (let ((app_1 (known-predicate-type k_0)))
                (let ((app_2 (known-struct-predicate-type-id k_0)))
                  (let ((app_3 (known-struct-predicate-authentic? k_0)))
                    (known-struct-predicate/need-imports
                     app_0
                     app_1
                     app_2
                     app_3
                     (hash-map needed_0 cons #t))))))
            (let ((app_0 (known-procedure-arity-mask k_0)))
              (known-predicate app_0 (known-predicate-type k_0)))))
        (if (known-field-accessor? k_0)
          (let ((needed_0
                 (needed-imports
                  (known-field-accessor-type-id k_0)
                  prim-knowns_0
                  imports_0
                  exports_0
                  '()
                  hash2610)))
            (if needed_0
              (let ((app_0 (known-procedure-arity-mask k_0)))
                (let ((app_1 (known-accessor-type k_0)))
                  (let ((app_2 (known-field-accessor-type-id k_0)))
                    (let ((app_3 (known-field-accessor-pos k_0)))
                      (known-field-accessor/need-imports
                       app_0
                       app_1
                       app_2
                       app_3
                       (hash-map needed_0 cons #t))))))
              (let ((app_0 (known-procedure-arity-mask k_0)))
                (known-accessor app_0 (known-accessor-type k_0)))))
          (if (known-field-mutator? k_0)
            (let ((needed_0
                   (needed-imports
                    (known-field-mutator-type-id k_0)
                    prim-knowns_0
                    imports_0
                    exports_0
                    '()
                    hash2610)))
              (if needed_0
                (let ((app_0 (known-procedure-arity-mask k_0)))
                  (let ((app_1 (known-mutator-type k_0)))
                    (let ((app_2 (known-field-mutator-type-id k_0)))
                      (let ((app_3 (known-field-mutator-pos k_0)))
                        (known-field-mutator/need-imports
                         app_0
                         app_1
                         app_2
                         app_3
                         (hash-map needed_0 cons #t))))))
                (let ((app_0 (known-procedure-arity-mask k_0)))
                  (known-mutator app_0 (known-mutator-type k_0)))))
            k_0))))))
(define needed-imports
  (lambda (v_0 prim-knowns_0 imports_0 exports_0 env_0 needed_0)
    (if needed_0
      (let ((hd_0
             (let ((p_0 (unwrap v_0)))
               (if (pair? p_0) (unwrap (car p_0)) #f))))
        (if (if (eq? 'lambda hd_0)
              (let ((a_0 (cdr (unwrap v_0))))
                (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
              #f)
          (call-with-values
           (lambda ()
             (let ((d_0 (cdr (unwrap v_0))))
               (let ((p_0 (unwrap d_0)))
                 (let ((args_0 (let ((a_0 (car p_0))) a_0)))
                   (let ((bodys_0 (let ((d_1 (cdr p_0))) d_1)))
                     (let ((args_1 args_0)) (values args_1 bodys_0)))))))
           (case-lambda
            ((args_0 bodys_0)
             (body-needed-imports
              bodys_0
              prim-knowns_0
              imports_0
              exports_0
              (add-args env_0 args_0)
              needed_0))
            (args (raise-binding-result-arity-error 2 args))))
          (if (if (eq? 'case-lambda hd_0)
                (let ((a_0 (cdr (unwrap v_0))))
                  (if (wrap-list? a_0)
                    (begin
                      (letrec*
                       ((for-loop_0
                         (|#%name|
                          for-loop
                          (lambda (result_0 lst_0)
                            (begin
                              (if (not (null? (unwrap lst_0)))
                                (let ((v_1
                                       (if (pair? (unwrap lst_0))
                                         (wrap-car lst_0)
                                         lst_0)))
                                  (let ((rest_0
                                         (if (pair? (unwrap lst_0))
                                           (wrap-cdr lst_0)
                                           null)))
                                    (let ((v_2 v_1))
                                      (let ((result_1
                                             (let ((result_1
                                                    (let ((p_0 (unwrap v_2)))
                                                      (if (pair? p_0) #t #f))))
                                               (values result_1))))
                                        (if (if (not
                                                 (let ((x_0 (list v_2)))
                                                   (not result_1)))
                                              #t
                                              #f)
                                          (for-loop_0 result_1 rest_0)
                                          result_1)))))
                                result_0))))))
                       (for-loop_0 #t a_0)))
                    #f))
                #f)
            (call-with-values
             (lambda ()
               (let ((d_0 (cdr (unwrap v_0))))
                 (call-with-values
                  (lambda ()
                    (begin
                      (letrec*
                       ((for-loop_0
                         (|#%name|
                          for-loop
                          (lambda (argss_0 bodyss_0 lst_0)
                            (begin
                              (if (not (null? (unwrap lst_0)))
                                (let ((v_1
                                       (if (pair? (unwrap lst_0))
                                         (wrap-car lst_0)
                                         lst_0)))
                                  (let ((rest_0
                                         (if (pair? (unwrap lst_0))
                                           (wrap-cdr lst_0)
                                           null)))
                                    (let ((v_2 v_1))
                                      (call-with-values
                                       (lambda ()
                                         (call-with-values
                                          (lambda ()
                                            (call-with-values
                                             (lambda ()
                                               (let ((p_0 (unwrap v_2)))
                                                 (let ((argss_1
                                                        (let ((a_0 (car p_0)))
                                                          a_0)))
                                                   (let ((bodyss_1
                                                          (let ((d_1
                                                                 (cdr p_0)))
                                                            d_1)))
                                                     (let ((argss_2 argss_1))
                                                       (values
                                                        argss_2
                                                        bodyss_1))))))
                                             (case-lambda
                                              ((argss9_0 bodyss10_0)
                                               (values
                                                (cons argss9_0 argss_0)
                                                (cons bodyss10_0 bodyss_0)))
                                              (args
                                               (raise-binding-result-arity-error
                                                2
                                                args)))))
                                          (case-lambda
                                           ((argss_1 bodyss_1)
                                            (values argss_1 bodyss_1))
                                           (args
                                            (raise-binding-result-arity-error
                                             2
                                             args)))))
                                       (case-lambda
                                        ((argss_1 bodyss_1)
                                         (for-loop_0 argss_1 bodyss_1 rest_0))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args)))))))
                                (values argss_0 bodyss_0)))))))
                       (for-loop_0 null null d_0))))
                  (case-lambda
                   ((argss_0 bodyss_0)
                    (let ((app_0 (reverse$1 argss_0)))
                      (values app_0 (reverse$1 bodyss_0))))
                   (args (raise-binding-result-arity-error 2 args))))))
             (case-lambda
              ((argss_0 bodyss_0)
               (begin
                 (letrec*
                  ((for-loop_0
                    (|#%name|
                     for-loop
                     (lambda (needed_1 lst_0 lst_1)
                       (begin
                         (if (if (pair? lst_0) (pair? lst_1) #f)
                           (let ((args_0 (unsafe-car lst_0)))
                             (let ((rest_0 (unsafe-cdr lst_0)))
                               (let ((bodys_0 (unsafe-car lst_1)))
                                 (let ((rest_1 (unsafe-cdr lst_1)))
                                   (let ((needed_2
                                          (let ((needed_2
                                                 (body-needed-imports
                                                  bodys_0
                                                  prim-knowns_0
                                                  imports_0
                                                  exports_0
                                                  (add-args env_0 args_0)
                                                  needed_1)))
                                            (values needed_2))))
                                     (for-loop_0 needed_2 rest_0 rest_1))))))
                           needed_1))))))
                  (for-loop_0 needed_0 argss_0 bodyss_0))))
              (args (raise-binding-result-arity-error 2 args))))
            (if (if (eq? 'quote hd_0)
                  (let ((a_0 (cdr (unwrap v_0))))
                    (let ((p_0 (unwrap a_0)))
                      (if (pair? p_0)
                        (let ((a_1 (cdr p_0)))
                          (let ((app_0 (unwrap '())))
                            (eq? app_0 (unwrap a_1))))
                        #f)))
                  #f)
              needed_0
              (if (if (eq? 'let-values hd_0) #t #f)
                (let-needed-imports
                 v_0
                 prim-knowns_0
                 imports_0
                 exports_0
                 env_0
                 needed_0)
                (if (if (eq? 'letrec-values hd_0) #t #f)
                  (let-needed-imports
                   v_0
                   prim-knowns_0
                   imports_0
                   exports_0
                   env_0
                   needed_0)
                  (if (if (eq? 'if hd_0)
                        (let ((a_0 (cdr (unwrap v_0))))
                          (let ((p_0 (unwrap a_0)))
                            (if (pair? p_0)
                              (let ((a_1 (cdr p_0)))
                                (let ((p_1 (unwrap a_1)))
                                  (if (pair? p_1)
                                    (let ((a_2 (cdr p_1)))
                                      (let ((p_2 (unwrap a_2)))
                                        (if (pair? p_2)
                                          (let ((a_3 (cdr p_2)))
                                            (let ((app_0 (unwrap '())))
                                              (eq? app_0 (unwrap a_3))))
                                          #f)))
                                    #f)))
                              #f)))
                        #f)
                    (call-with-values
                     (lambda ()
                       (let ((d_0 (cdr (unwrap v_0))))
                         (let ((p_0 (unwrap d_0)))
                           (let ((tst_0 (let ((a_0 (car p_0))) a_0)))
                             (call-with-values
                              (lambda ()
                                (let ((d_1 (cdr p_0)))
                                  (let ((p_1 (unwrap d_1)))
                                    (let ((thn_0 (let ((a_0 (car p_1))) a_0)))
                                      (let ((els_0
                                             (let ((d_2 (cdr p_1)))
                                               (let ((a_0 (car (unwrap d_2))))
                                                 a_0))))
                                        (let ((thn_1 thn_0))
                                          (values thn_1 els_0)))))))
                              (case-lambda
                               ((thn_0 els_0)
                                (let ((tst_1 tst_0))
                                  (values tst_1 thn_0 els_0)))
                               (args
                                (raise-binding-result-arity-error
                                 2
                                 args))))))))
                     (case-lambda
                      ((tst_0 thn_0 els_0)
                       (needed-imports
                        tst_0
                        prim-knowns_0
                        imports_0
                        exports_0
                        env_0
                        (needed-imports
                         thn_0
                         prim-knowns_0
                         imports_0
                         exports_0
                         env_0
                         (needed-imports
                          els_0
                          prim-knowns_0
                          imports_0
                          exports_0
                          env_0
                          needed_0))))
                      (args (raise-binding-result-arity-error 3 args))))
                    (if (if (eq? 'with-continuation-mark hd_0)
                          (let ((a_0 (cdr (unwrap v_0))))
                            (let ((p_0 (unwrap a_0)))
                              (if (pair? p_0)
                                (let ((a_1 (cdr p_0)))
                                  (let ((p_1 (unwrap a_1)))
                                    (if (pair? p_1)
                                      (let ((a_2 (cdr p_1)))
                                        (let ((p_2 (unwrap a_2)))
                                          (if (pair? p_2)
                                            (let ((a_3 (cdr p_2)))
                                              (let ((app_0 (unwrap '())))
                                                (eq? app_0 (unwrap a_3))))
                                            #f)))
                                      #f)))
                                #f)))
                          #f)
                      (call-with-values
                       (lambda ()
                         (let ((d_0 (cdr (unwrap v_0))))
                           (let ((p_0 (unwrap d_0)))
                             (let ((key_0 (let ((a_0 (car p_0))) a_0)))
                               (call-with-values
                                (lambda ()
                                  (let ((d_1 (cdr p_0)))
                                    (let ((p_1 (unwrap d_1)))
                                      (let ((val_0
                                             (let ((a_0 (car p_1))) a_0)))
                                        (let ((body_0
                                               (let ((d_2 (cdr p_1)))
                                                 (let ((a_0
                                                        (car (unwrap d_2))))
                                                   a_0))))
                                          (let ((val_1 val_0))
                                            (values val_1 body_0)))))))
                                (case-lambda
                                 ((val_0 body_0)
                                  (let ((key_1 key_0))
                                    (values key_1 val_0 body_0)))
                                 (args
                                  (raise-binding-result-arity-error
                                   2
                                   args))))))))
                       (case-lambda
                        ((key_0 val_0 body_0)
                         (needed-imports
                          key_0
                          prim-knowns_0
                          imports_0
                          exports_0
                          env_0
                          (needed-imports
                           val_0
                           prim-knowns_0
                           imports_0
                           exports_0
                           env_0
                           (needed-imports
                            body_0
                            prim-knowns_0
                            imports_0
                            exports_0
                            env_0
                            needed_0))))
                        (args (raise-binding-result-arity-error 3 args))))
                      (if (if (eq? 'begin hd_0)
                            (let ((a_0 (cdr (unwrap v_0)))) (wrap-list? a_0))
                            #f)
                        (let ((exps_0
                               (let ((d_0 (cdr (unwrap v_0))))
                                 (unwrap-list d_0))))
                          (body-needed-imports
                           exps_0
                           prim-knowns_0
                           imports_0
                           exports_0
                           env_0
                           needed_0))
                        (if (if (eq? 'begin0 hd_0)
                              (let ((a_0 (cdr (unwrap v_0)))) (wrap-list? a_0))
                              #f)
                          (let ((exps_0
                                 (let ((d_0 (cdr (unwrap v_0))))
                                   (unwrap-list d_0))))
                            (body-needed-imports
                             exps_0
                             prim-knowns_0
                             imports_0
                             exports_0
                             env_0
                             needed_0))
                          (if (if (eq? 'set! hd_0)
                                (let ((a_0 (cdr (unwrap v_0))))
                                  (let ((p_0 (unwrap a_0)))
                                    (if (pair? p_0)
                                      (let ((a_1 (cdr p_0)))
                                        (let ((p_1 (unwrap a_1)))
                                          (if (pair? p_1)
                                            (let ((a_2 (cdr p_1)))
                                              (let ((app_0 (unwrap '())))
                                                (eq? app_0 (unwrap a_2))))
                                            #f)))
                                      #f)))
                                #f)
                            (call-with-values
                             (lambda ()
                               (let ((d_0 (cdr (unwrap v_0))))
                                 (let ((p_0 (unwrap d_0)))
                                   (let ((id_0 (let ((a_0 (car p_0))) a_0)))
                                     (let ((rhs_0
                                            (let ((d_1 (cdr p_0)))
                                              (let ((a_0 (car (unwrap d_1))))
                                                a_0))))
                                       (let ((id_1 id_0))
                                         (values id_1 rhs_0)))))))
                             (case-lambda
                              ((id_0 rhs_0)
                               (let ((u_0 (unwrap id_0)))
                                 (if (hash-ref exports_0 id_0 #f)
                                   #f
                                   (needed-imports
                                    id_0
                                    prim-knowns_0
                                    imports_0
                                    exports_0
                                    env_0
                                    (needed-imports
                                     rhs_0
                                     prim-knowns_0
                                     imports_0
                                     exports_0
                                     env_0
                                     needed_0)))))
                              (args
                               (raise-binding-result-arity-error 2 args))))
                            (if (if (eq? '|#%variable-reference| hd_0) #t #f)
                              #f
                              (if (let ((p_0 (unwrap v_0)))
                                    (if (pair? p_0) #t #f))
                                (let ((rator_0
                                       (let ((a_0 (car (unwrap v_0)))) a_0)))
                                  (body-needed-imports
                                   v_0
                                   prim-knowns_0
                                   imports_0
                                   exports_0
                                   env_0
                                   needed_0))
                                (let ((u-v_0 (unwrap v_0)))
                                  (if (symbol? u-v_0)
                                    (if (let ((or-part_0 (memq u-v_0 env_0)))
                                          (if or-part_0
                                            or-part_0
                                            (let ((or-part_1
                                                   (hash-ref
                                                    prim-knowns_0
                                                    u-v_0
                                                    #f)))
                                              (if or-part_1
                                                or-part_1
                                                (hash-ref
                                                 needed_0
                                                 u-v_0
                                                 #f)))))
                                      needed_0
                                      (let ((c3_0
                                             (hash-ref exports_0 u-v_0 #f)))
                                        (if c3_0
                                          (hash-set
                                           needed_0
                                           u-v_0
                                           (cons (export-ext-id c3_0) #f))
                                          (let ((c2_0
                                                 (hash-ref
                                                  imports_0
                                                  u-v_0
                                                  #f)))
                                            (if c2_0
                                              (hash-set
                                               needed_0
                                               u-v_0
                                               (let ((app_0
                                                      (import-ext-id c2_0)))
                                                 (cons
                                                  app_0
                                                  (import-group-index
                                                   (import-grp c2_0)))))
                                              #f)))))
                                    needed_0)))))))))))))))
      #f)))
(define body-needed-imports
  (lambda (l_0 prim-knowns_0 imports_0 exports_0 env_0 needed_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (needed_1 lst_0)
            (begin
              (if (not (null? (unwrap lst_0)))
                (let ((e_0 (if (pair? (unwrap lst_0)) (wrap-car lst_0) lst_0)))
                  (let ((rest_0
                         (if (pair? (unwrap lst_0)) (wrap-cdr lst_0) null)))
                    (let ((e_1 e_0))
                      (let ((needed_2
                             (let ((needed_2
                                    (needed-imports
                                     e_1
                                     prim-knowns_0
                                     imports_0
                                     exports_0
                                     env_0
                                     needed_1)))
                               (values needed_2))))
                        (for-loop_0 needed_2 rest_0)))))
                needed_1))))))
       (for-loop_0 needed_0 l_0)))))
(define let-needed-imports
  (lambda (v_0 prim-knowns_0 imports_0 exports_0 env_0 needed_0)
    (if (let ((p_0 (unwrap v_0)))
          (if (pair? p_0)
            (let ((a_0 (cdr p_0)))
              (let ((p_1 (unwrap a_0)))
                (if (pair? p_1)
                  (if (let ((a_1 (car p_1)))
                        (if (wrap-list? a_1)
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (result_0 lst_0)
                                  (begin
                                    (if (not (null? (unwrap lst_0)))
                                      (let ((v_1
                                             (if (pair? (unwrap lst_0))
                                               (wrap-car lst_0)
                                               lst_0)))
                                        (let ((rest_0
                                               (if (pair? (unwrap lst_0))
                                                 (wrap-cdr lst_0)
                                                 null)))
                                          (let ((v_2 v_1))
                                            (let ((result_1
                                                   (let ((result_1
                                                          (let ((p_2
                                                                 (unwrap v_2)))
                                                            (if (pair? p_2)
                                                              (let ((a_2
                                                                     (cdr
                                                                      p_2)))
                                                                (let ((p_3
                                                                       (unwrap
                                                                        a_2)))
                                                                  (if (pair?
                                                                       p_3)
                                                                    (let ((a_3
                                                                           (cdr
                                                                            p_3)))
                                                                      (let ((app_0
                                                                             (unwrap
                                                                              '())))
                                                                        (eq?
                                                                         app_0
                                                                         (unwrap
                                                                          a_3))))
                                                                    #f)))
                                                              #f))))
                                                     (values result_1))))
                                              (if (if (not
                                                       (let ((x_0 (list v_2)))
                                                         (not result_1)))
                                                    #t
                                                    #f)
                                                (for-loop_0 result_1 rest_0)
                                                result_1)))))
                                      result_0))))))
                             (for-loop_0 #t a_1)))
                          #f))
                    (let ((a_1 (cdr p_1))) (wrap-list? a_1))
                    #f)
                  #f)))
            #f))
      (call-with-values
       (lambda ()
         (let ((p_0 (unwrap v_0)))
           (let ((let-id_0 (let ((a_0 (car p_0))) a_0)))
             (call-with-values
              (lambda ()
                (let ((d_0 (cdr p_0)))
                  (let ((p_1 (unwrap d_0)))
                    (call-with-values
                     (lambda ()
                       (let ((a_0 (car p_1)))
                         (call-with-values
                          (lambda ()
                            (begin
                              (letrec*
                               ((for-loop_0
                                 (|#%name|
                                  for-loop
                                  (lambda (idss_0 rhss_0 lst_0)
                                    (begin
                                      (if (not (null? (unwrap lst_0)))
                                        (let ((v_1
                                               (if (pair? (unwrap lst_0))
                                                 (wrap-car lst_0)
                                                 lst_0)))
                                          (let ((rest_0
                                                 (if (pair? (unwrap lst_0))
                                                   (wrap-cdr lst_0)
                                                   null)))
                                            (let ((v_2 v_1))
                                              (call-with-values
                                               (lambda ()
                                                 (call-with-values
                                                  (lambda ()
                                                    (call-with-values
                                                     (lambda ()
                                                       (let ((p_2
                                                              (unwrap v_2)))
                                                         (let ((idss_1
                                                                (let ((a_1
                                                                       (car
                                                                        p_2)))
                                                                  a_1)))
                                                           (let ((rhss_1
                                                                  (let ((d_1
                                                                         (cdr
                                                                          p_2)))
                                                                    (let ((a_1
                                                                           (car
                                                                            (unwrap
                                                                             d_1))))
                                                                      a_1))))
                                                             (let ((idss_2
                                                                    idss_1))
                                                               (values
                                                                idss_2
                                                                rhss_1))))))
                                                     (case-lambda
                                                      ((idss11_0 rhss12_0)
                                                       (values
                                                        (cons idss11_0 idss_0)
                                                        (cons
                                                         rhss12_0
                                                         rhss_0)))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args)))))
                                                  (case-lambda
                                                   ((idss_1 rhss_1)
                                                    (values idss_1 rhss_1))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args)))))
                                               (case-lambda
                                                ((idss_1 rhss_1)
                                                 (for-loop_0
                                                  idss_1
                                                  rhss_1
                                                  rest_0))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  2
                                                  args)))))))
                                        (values idss_0 rhss_0)))))))
                               (for-loop_0 null null a_0))))
                          (case-lambda
                           ((idss_0 rhss_0)
                            (let ((app_0 (reverse$1 idss_0)))
                              (values app_0 (reverse$1 rhss_0))))
                           (args (raise-binding-result-arity-error 2 args))))))
                     (case-lambda
                      ((idss_0 rhss_0)
                       (let ((bodys_0
                              (let ((d_1 (cdr p_1))) (unwrap-list d_1))))
                         (let ((idss_1 idss_0) (rhss_1 rhss_0))
                           (values idss_1 rhss_1 bodys_0))))
                      (args (raise-binding-result-arity-error 2 args)))))))
              (case-lambda
               ((idss_0 rhss_0 bodys_0)
                (let ((let-id_1 let-id_0))
                  (values let-id_1 idss_0 rhss_0 bodys_0)))
               (args (raise-binding-result-arity-error 3 args)))))))
       (case-lambda
        ((let-id_0 idss_0 rhss_0 bodys_0)
         (let ((new-env_0
                (begin
                  (letrec*
                   ((for-loop_0
                     (|#%name|
                      for-loop
                      (lambda (env_1 lst_0)
                        (begin
                          (if (pair? lst_0)
                            (let ((ids_0 (unsafe-car lst_0)))
                              (let ((rest_0 (unsafe-cdr lst_0)))
                                (let ((env_2
                                       (begin
                                         (letrec*
                                          ((for-loop_1
                                            (|#%name|
                                             for-loop
                                             (lambda (env_2 lst_1)
                                               (begin
                                                 (if (pair? lst_1)
                                                   (let ((id_0
                                                          (unsafe-car lst_1)))
                                                     (let ((rest_1
                                                            (unsafe-cdr
                                                             lst_1)))
                                                       (let ((env_3
                                                              (let ((env_3
                                                                     (cons
                                                                      (unwrap
                                                                       id_0)
                                                                      env_2)))
                                                                (values
                                                                 env_3))))
                                                         (for-loop_1
                                                          env_3
                                                          rest_1))))
                                                   env_2))))))
                                          (for-loop_1 env_1 ids_0)))))
                                  (for-loop_0 env_2 rest_0))))
                            env_1))))))
                   (for-loop_0 env_0 idss_0)))))
           (body-needed-imports
            bodys_0
            prim-knowns_0
            imports_0
            exports_0
            new-env_0
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (needed_1 lst_0)
                    (begin
                      (if (pair? lst_0)
                        (let ((rhs_0 (unsafe-car lst_0)))
                          (let ((rest_0 (unsafe-cdr lst_0)))
                            (let ((needed_2
                                   (let ((needed_2
                                          (needed-imports
                                           rhs_0
                                           prim-knowns_0
                                           imports_0
                                           exports_0
                                           new-env_0
                                           needed_1)))
                                     (values needed_2))))
                              (for-loop_0 needed_2 rest_0))))
                        needed_1))))))
               (for-loop_0 needed_0 rhss_0))))))
        (args (raise-binding-result-arity-error 4 args))))
      (error 'match "failed ~e" v_0))))
(define add-args
  (lambda (env_0 args_0)
    (if (null? (unwrap args_0))
      env_0
      (if (pair? (unwrap args_0))
        (let ((app_0 (cons (unwrap (wrap-car args_0)) env_0)))
          (add-args app_0 (wrap-cdr args_0)))
        (cons (unwrap args_0) env_0)))))
(define needed->list (lambda (needed_0) (hash-map needed_0 cons #t)))
(define infer-known.1
  (|#%name|
   infer-known
   (lambda (optimize-inline?2_0
            post-schemify?3_0
            primitives1_0
            rhs7_0
            defn8_0
            id9_0
            knowns10_0
            prim-knowns11_0
            imports12_0
            mutated13_0
            simples14_0
            unsafe-mode?15_0)
     (begin
       (letrec*
        ((loop_0
          (|#%name|
           loop
           (lambda (rhs_0)
             (begin
               (if (lambda?.1 #f rhs_0)
                 (call-with-values
                  (lambda () (extract-lambda rhs_0))
                  (case-lambda
                   ((lam_0 inlinable?_0)
                    (let ((arity-mask_0 (lambda-arity-mask lam_0)))
                      (if (if inlinable?_0
                            (if (not post-schemify?3_0)
                              (let ((or-part_0 (can-inline? lam_0)))
                                (if or-part_0
                                  or-part_0
                                  (wrap-property
                                   defn8_0
                                   'compiler-hint:cross-module-inline)))
                              #f)
                            #f)
                        (let ((lam_1
                               (if optimize-inline?2_0
                                 (optimize*
                                  lam_0
                                  prim-knowns11_0
                                  primitives1_0
                                  knowns10_0
                                  imports12_0
                                  mutated13_0
                                  unsafe-mode?15_0)
                                 lam_0)))
                          (known-procedure/can-inline arity-mask_0 lam_1))
                        (known-procedure arity-mask_0))))
                   (args (raise-binding-result-arity-error 2 args))))
                 (if (if (literal? rhs_0)
                       (not (hash-ref mutated13_0 (unwrap id9_0) #f))
                       #f)
                   (known-literal (unwrap-literal rhs_0))
                   (if (if (symbol? (unwrap rhs_0))
                         (not (hash-ref mutated13_0 (unwrap id9_0) #f))
                         #f)
                     (let ((u-rhs_0 (unwrap rhs_0)))
                       (let ((c3_0 (hash-ref prim-knowns11_0 u-rhs_0 #f)))
                         (if c3_0
                           (known-copy u-rhs_0)
                           (if (not
                                (simple-mutated-state?
                                 (hash-ref mutated13_0 u-rhs_0 #f)))
                             (if defn8_0 a-known-constant #f)
                             (let ((c2_0
                                    (hash-ref-either
                                     knowns10_0
                                     imports12_0
                                     u-rhs_0)))
                               (if c2_0
                                 (if (known-procedure/can-inline/need-imports?
                                      c2_0)
                                   (known-procedure/can-inline
                                    (known-procedure-arity-mask c2_0)
                                    rhs_0)
                                   (if (let ((or-part_0
                                              (known-procedure/can-inline?
                                               c2_0)))
                                         (if or-part_0
                                           or-part_0
                                           (known-literal? c2_0)))
                                     c2_0
                                     (if (let ((or-part_0 (not defn8_0)))
                                           (if or-part_0
                                             or-part_0
                                             (known-copy? c2_0)))
                                       (known-copy rhs_0)
                                       c2_0)))
                                 (if defn8_0
                                   a-known-constant
                                   (known-copy rhs_0))))))))
                     (if (parameter-result?
                          rhs_0
                          prim-knowns11_0
                          knowns10_0
                          mutated13_0)
                       (known-procedure 3)
                       (let ((c1_0 (constructed-procedure-arity-mask rhs_0)))
                         (if c1_0
                           (known-procedure c1_0)
                           (let ((hd_0
                                  (let ((p_0 (unwrap rhs_0)))
                                    (if (pair? p_0) (unwrap (car p_0)) #f))))
                             (if (if (eq? 'let-values hd_0)
                                   (let ((a_0 (cdr (unwrap rhs_0))))
                                     (let ((p_0 (unwrap a_0)))
                                       (if (pair? p_0)
                                         (if (let ((a_1 (car p_0)))
                                               (let ((app_0 (unwrap '())))
                                                 (eq? app_0 (unwrap a_1))))
                                           (let ((a_1 (cdr p_0)))
                                             (let ((p_1 (unwrap a_1)))
                                               (if (pair? p_1)
                                                 (let ((a_2 (cdr p_1)))
                                                   (let ((app_0 (unwrap '())))
                                                     (eq? app_0 (unwrap a_2))))
                                                 #f)))
                                           #f)
                                         #f)))
                                   #f)
                               (let ((e_0
                                      (let ((d_0 (cdr (unwrap rhs_0))))
                                        (let ((d_1 (cdr (unwrap d_0))))
                                          (let ((a_0 (car (unwrap d_1))))
                                            a_0)))))
                                 (loop_0 e_0))
                               (if (if (eq? 'begin hd_0)
                                     (let ((a_0 (cdr (unwrap rhs_0))))
                                       (let ((p_0 (unwrap a_0)))
                                         (if (pair? p_0)
                                           (let ((a_1 (cdr p_0)))
                                             (let ((app_0 (unwrap '())))
                                               (eq? app_0 (unwrap a_1))))
                                           #f)))
                                     #f)
                                 (let ((e_0
                                        (let ((d_0 (cdr (unwrap rhs_0))))
                                          (let ((a_0 (car (unwrap d_0))))
                                            a_0))))
                                   (loop_0 e_0))
                                 (if (if defn8_0
                                       (simple?.1
                                        #t
                                        1
                                        rhs_0
                                        prim-knowns11_0
                                        knowns10_0
                                        imports12_0
                                        mutated13_0
                                        simples14_0)
                                       #f)
                                   a-known-constant
                                   #f)))))))))))))))
        (loop_0 rhs7_0))))))
(define can-improve-infer-known?
  (lambda (k_0)
    (let ((or-part_0 (not k_0)))
      (if or-part_0 or-part_0 (eq? k_0 a-known-constant)))))
(define lambda?.1
  (|#%name|
   lambda?
   (lambda (simple?17_0 v19_0)
     (begin
       (let ((hd_0
              (let ((p_0 (unwrap v19_0)))
                (if (pair? p_0) (unwrap (car p_0)) #f))))
         (if (if (eq? 'lambda hd_0) #t #f)
           #t
           (if (if (eq? 'case-lambda hd_0) #t #f)
             #t
             (if (if (eq? 'let-values hd_0)
                   (let ((a_0 (cdr (unwrap v19_0))))
                     (let ((p_0 (unwrap a_0)))
                       (if (pair? p_0)
                         (if (let ((a_1 (car p_0)))
                               (let ((p_1 (unwrap a_1)))
                                 (if (pair? p_1)
                                   (if (let ((a_2 (car p_1)))
                                         (let ((p_2 (unwrap a_2)))
                                           (if (pair? p_2)
                                             (if (let ((a_3 (car p_2)))
                                                   (let ((p_3 (unwrap a_3)))
                                                     (if (pair? p_3)
                                                       (let ((a_4 (cdr p_3)))
                                                         (let ((app_0
                                                                (unwrap '())))
                                                           (eq?
                                                            app_0
                                                            (unwrap a_4))))
                                                       #f)))
                                               (let ((a_3 (cdr p_2)))
                                                 (let ((p_3 (unwrap a_3)))
                                                   (if (pair? p_3)
                                                     (let ((a_4 (cdr p_3)))
                                                       (let ((app_0
                                                              (unwrap '())))
                                                         (eq?
                                                          app_0
                                                          (unwrap a_4))))
                                                     #f)))
                                               #f)
                                             #f)))
                                     (let ((a_2 (cdr p_1)))
                                       (let ((app_0 (unwrap '())))
                                         (eq? app_0 (unwrap a_2))))
                                     #f)
                                   #f)))
                           (let ((a_1 (cdr p_0)))
                             (let ((p_1 (unwrap a_1)))
                               (if (pair? p_1)
                                 (let ((a_2 (cdr p_1)))
                                   (let ((app_0 (unwrap '())))
                                     (eq? app_0 (unwrap a_2))))
                                 #f)))
                           #f)
                         #f)))
                   #f)
               (call-with-values
                (lambda ()
                  (let ((d_0 (cdr (unwrap v19_0))))
                    (let ((p_0 (unwrap d_0)))
                      (call-with-values
                       (lambda ()
                         (let ((a_0 (car p_0)))
                           (let ((a_1 (car (unwrap a_0))))
                             (let ((p_1 (unwrap a_1)))
                               (let ((id_0
                                      (let ((a_2 (car p_1)))
                                        (let ((a_3 (car (unwrap a_2)))) a_3))))
                                 (let ((rhs_0
                                        (let ((d_1 (cdr p_1)))
                                          (let ((a_2 (car (unwrap d_1))))
                                            a_2))))
                                   (let ((id_1 id_0))
                                     (values id_1 rhs_0))))))))
                       (case-lambda
                        ((id_0 rhs_0)
                         (let ((body_0
                                (let ((d_1 (cdr p_0)))
                                  (let ((a_0 (car (unwrap d_1)))) a_0))))
                           (let ((id_1 id_0) (rhs_1 rhs_0))
                             (values id_1 rhs_1 body_0))))
                        (args (raise-binding-result-arity-error 2 args)))))))
                (case-lambda
                 ((id_0 rhs_0 body_0)
                  (let-lambda?.1 simple?17_0 id_0 rhs_0 body_0))
                 (args (raise-binding-result-arity-error 3 args))))
               (if (if (eq? 'letrec-values hd_0)
                     (let ((a_0 (cdr (unwrap v19_0))))
                       (let ((p_0 (unwrap a_0)))
                         (if (pair? p_0)
                           (if (let ((a_1 (car p_0)))
                                 (let ((p_1 (unwrap a_1)))
                                   (if (pair? p_1)
                                     (if (let ((a_2 (car p_1)))
                                           (let ((p_2 (unwrap a_2)))
                                             (if (pair? p_2)
                                               (if (let ((a_3 (car p_2)))
                                                     (let ((p_3 (unwrap a_3)))
                                                       (if (pair? p_3)
                                                         (let ((a_4 (cdr p_3)))
                                                           (let ((app_0
                                                                  (unwrap
                                                                   '())))
                                                             (eq?
                                                              app_0
                                                              (unwrap a_4))))
                                                         #f)))
                                                 (let ((a_3 (cdr p_2)))
                                                   (let ((p_3 (unwrap a_3)))
                                                     (if (pair? p_3)
                                                       (let ((a_4 (cdr p_3)))
                                                         (let ((app_0
                                                                (unwrap '())))
                                                           (eq?
                                                            app_0
                                                            (unwrap a_4))))
                                                       #f)))
                                                 #f)
                                               #f)))
                                       (let ((a_2 (cdr p_1)))
                                         (let ((app_0 (unwrap '())))
                                           (eq? app_0 (unwrap a_2))))
                                       #f)
                                     #f)))
                             (let ((a_1 (cdr p_0)))
                               (let ((p_1 (unwrap a_1)))
                                 (if (pair? p_1)
                                   (let ((a_2 (cdr p_1)))
                                     (let ((app_0 (unwrap '())))
                                       (eq? app_0 (unwrap a_2))))
                                   #f)))
                             #f)
                           #f)))
                     #f)
                 (call-with-values
                  (lambda ()
                    (let ((d_0 (cdr (unwrap v19_0))))
                      (let ((p_0 (unwrap d_0)))
                        (call-with-values
                         (lambda ()
                           (let ((a_0 (car p_0)))
                             (let ((a_1 (car (unwrap a_0))))
                               (let ((p_1 (unwrap a_1)))
                                 (let ((id_0
                                        (let ((a_2 (car p_1)))
                                          (let ((a_3 (car (unwrap a_2))))
                                            a_3))))
                                   (let ((rhs_0
                                          (let ((d_1 (cdr p_1)))
                                            (let ((a_2 (car (unwrap d_1))))
                                              a_2))))
                                     (let ((id_1 id_0))
                                       (values id_1 rhs_0))))))))
                         (case-lambda
                          ((id_0 rhs_0)
                           (let ((body_0
                                  (let ((d_1 (cdr p_0)))
                                    (let ((a_0 (car (unwrap d_1)))) a_0))))
                             (let ((id_1 id_0) (rhs_1 rhs_0))
                               (values id_1 rhs_1 body_0))))
                          (args (raise-binding-result-arity-error 2 args)))))))
                  (case-lambda
                   ((id_0 rhs_0 body_0)
                    (let-lambda?.1 simple?17_0 id_0 rhs_0 body_0))
                   (args (raise-binding-result-arity-error 3 args))))
                 (if (if (eq? 'let hd_0)
                       (let ((a_0 (cdr (unwrap v19_0))))
                         (let ((p_0 (unwrap a_0)))
                           (if (pair? p_0)
                             (if (let ((a_1 (car p_0)))
                                   (let ((p_1 (unwrap a_1)))
                                     (if (pair? p_1)
                                       (if (let ((a_2 (car p_1)))
                                             (let ((p_2 (unwrap a_2)))
                                               (if (pair? p_2)
                                                 (let ((a_3 (cdr p_2)))
                                                   (let ((p_3 (unwrap a_3)))
                                                     (if (pair? p_3)
                                                       (let ((a_4 (cdr p_3)))
                                                         (let ((app_0
                                                                (unwrap '())))
                                                           (eq?
                                                            app_0
                                                            (unwrap a_4))))
                                                       #f)))
                                                 #f)))
                                         (let ((a_2 (cdr p_1)))
                                           (let ((app_0 (unwrap '())))
                                             (eq? app_0 (unwrap a_2))))
                                         #f)
                                       #f)))
                               (let ((a_1 (cdr p_0)))
                                 (let ((p_1 (unwrap a_1)))
                                   (if (pair? p_1)
                                     (let ((a_2 (cdr p_1)))
                                       (let ((app_0 (unwrap '())))
                                         (eq? app_0 (unwrap a_2))))
                                     #f)))
                               #f)
                             #f)))
                       #f)
                   (call-with-values
                    (lambda ()
                      (let ((d_0 (cdr (unwrap v19_0))))
                        (let ((p_0 (unwrap d_0)))
                          (call-with-values
                           (lambda ()
                             (let ((a_0 (car p_0)))
                               (let ((a_1 (car (unwrap a_0))))
                                 (let ((p_1 (unwrap a_1)))
                                   (let ((id_0 (let ((a_2 (car p_1))) a_2)))
                                     (let ((rhs_0
                                            (let ((d_1 (cdr p_1)))
                                              (let ((a_2 (car (unwrap d_1))))
                                                a_2))))
                                       (let ((id_1 id_0))
                                         (values id_1 rhs_0))))))))
                           (case-lambda
                            ((id_0 rhs_0)
                             (let ((body_0
                                    (let ((d_1 (cdr p_0)))
                                      (let ((a_0 (car (unwrap d_1)))) a_0))))
                               (let ((id_1 id_0) (rhs_1 rhs_0))
                                 (values id_1 rhs_1 body_0))))
                            (args
                             (raise-binding-result-arity-error 2 args)))))))
                    (case-lambda
                     ((id_0 rhs_0 body_0)
                      (let-lambda?.1 simple?17_0 id_0 rhs_0 body_0))
                     (args (raise-binding-result-arity-error 3 args))))
                   (if (if (eq? 'letrec* hd_0)
                         (let ((a_0 (cdr (unwrap v19_0))))
                           (let ((p_0 (unwrap a_0)))
                             (if (pair? p_0)
                               (if (let ((a_1 (car p_0)))
                                     (let ((p_1 (unwrap a_1)))
                                       (if (pair? p_1)
                                         (if (let ((a_2 (car p_1)))
                                               (let ((p_2 (unwrap a_2)))
                                                 (if (pair? p_2)
                                                   (let ((a_3 (cdr p_2)))
                                                     (let ((p_3 (unwrap a_3)))
                                                       (if (pair? p_3)
                                                         (let ((a_4 (cdr p_3)))
                                                           (let ((app_0
                                                                  (unwrap
                                                                   '())))
                                                             (eq?
                                                              app_0
                                                              (unwrap a_4))))
                                                         #f)))
                                                   #f)))
                                           (let ((a_2 (cdr p_1)))
                                             (let ((app_0 (unwrap '())))
                                               (eq? app_0 (unwrap a_2))))
                                           #f)
                                         #f)))
                                 (let ((a_1 (cdr p_0)))
                                   (let ((p_1 (unwrap a_1)))
                                     (if (pair? p_1)
                                       (let ((a_2 (cdr p_1)))
                                         (let ((app_0 (unwrap '())))
                                           (eq? app_0 (unwrap a_2))))
                                       #f)))
                                 #f)
                               #f)))
                         #f)
                     (call-with-values
                      (lambda ()
                        (let ((d_0 (cdr (unwrap v19_0))))
                          (let ((p_0 (unwrap d_0)))
                            (call-with-values
                             (lambda ()
                               (let ((a_0 (car p_0)))
                                 (let ((a_1 (car (unwrap a_0))))
                                   (let ((p_1 (unwrap a_1)))
                                     (let ((id_0 (let ((a_2 (car p_1))) a_2)))
                                       (let ((rhs_0
                                              (let ((d_1 (cdr p_1)))
                                                (let ((a_2 (car (unwrap d_1))))
                                                  a_2))))
                                         (let ((id_1 id_0))
                                           (values id_1 rhs_0))))))))
                             (case-lambda
                              ((id_0 rhs_0)
                               (let ((body_0
                                      (let ((d_1 (cdr p_0)))
                                        (let ((a_0 (car (unwrap d_1)))) a_0))))
                                 (let ((id_1 id_0) (rhs_1 rhs_0))
                                   (values id_1 rhs_1 body_0))))
                              (args
                               (raise-binding-result-arity-error 2 args)))))))
                      (case-lambda
                       ((id_0 rhs_0 body_0)
                        (let-lambda?.1 simple?17_0 id_0 rhs_0 body_0))
                       (args (raise-binding-result-arity-error 3 args))))
                     (if (if (eq? 'let-values hd_0)
                           (let ((a_0 (cdr (unwrap v19_0))))
                             (let ((p_0 (unwrap a_0)))
                               (if (pair? p_0)
                                 (let ((a_1 (cdr p_0)))
                                   (let ((p_1 (unwrap a_1)))
                                     (if (pair? p_1)
                                       (let ((a_2 (cdr p_1)))
                                         (let ((app_0 (unwrap '())))
                                           (eq? app_0 (unwrap a_2))))
                                       #f)))
                                 #f)))
                           #f)
                       (let ((body_0
                              (let ((d_0 (cdr (unwrap v19_0))))
                                (let ((d_1 (cdr (unwrap d_0))))
                                  (let ((a_0 (car (unwrap d_1)))) a_0)))))
                         (if (not simple?17_0) (lambda?.1 #f body_0) #f))
                       (if (if (eq? 'letrec-values hd_0)
                             (let ((a_0 (cdr (unwrap v19_0))))
                               (let ((p_0 (unwrap a_0)))
                                 (if (pair? p_0)
                                   (let ((a_1 (cdr p_0)))
                                     (let ((p_1 (unwrap a_1)))
                                       (if (pair? p_1)
                                         (let ((a_2 (cdr p_1)))
                                           (let ((app_0 (unwrap '())))
                                             (eq? app_0 (unwrap a_2))))
                                         #f)))
                                   #f)))
                             #f)
                         (let ((body_0
                                (let ((d_0 (cdr (unwrap v19_0))))
                                  (let ((d_1 (cdr (unwrap d_0))))
                                    (let ((a_0 (car (unwrap d_1)))) a_0)))))
                           (if (not simple?17_0) (lambda?.1 #f body_0) #f))
                         (if (if (eq? 'begin hd_0)
                               (let ((a_0 (cdr (unwrap v19_0))))
                                 (let ((p_0 (unwrap a_0)))
                                   (if (pair? p_0)
                                     (let ((a_1 (cdr p_0)))
                                       (let ((app_0 (unwrap '())))
                                         (eq? app_0 (unwrap a_1))))
                                     #f)))
                               #f)
                           (let ((body_0
                                  (let ((d_0 (cdr (unwrap v19_0))))
                                    (let ((a_0 (car (unwrap d_0)))) a_0))))
                             (lambda?.1 simple?17_0 body_0))
                           (if (if (eq? 'values hd_0)
                                 (let ((a_0 (cdr (unwrap v19_0))))
                                   (let ((p_0 (unwrap a_0)))
                                     (if (pair? p_0)
                                       (let ((a_1 (cdr p_0)))
                                         (let ((app_0 (unwrap '())))
                                           (eq? app_0 (unwrap a_1))))
                                       #f)))
                                 #f)
                             (let ((body_0
                                    (let ((d_0 (cdr (unwrap v19_0))))
                                      (let ((a_0 (car (unwrap d_0)))) a_0))))
                               (lambda?.1 simple?17_0 body_0))
                             #f)))))))))))))))
(define let-lambda?.1
  (|#%name|
   let-lambda?
   (lambda (simple?21_0 id23_0 rhs24_0 body25_0)
     (begin
       (let ((or-part_0
              (if (let ((app_0 (unwrap id23_0))) (eq? app_0 (unwrap body25_0)))
                (lambda?.1 simple?21_0 rhs24_0)
                #f)))
         (if or-part_0
           or-part_0
           (if (not simple?21_0) (lambda?.1 simple?21_0 body25_0) #f)))))))
(define extract-lambda
  (lambda (v_0)
    (let ((hd_0
           (let ((p_0 (unwrap v_0))) (if (pair? p_0) (unwrap (car p_0)) #f))))
      (if (if (eq? 'lambda hd_0) #t #f)
        (values v_0 #t)
        (if (if (eq? 'case-lambda hd_0) #t #f)
          (values v_0 #t)
          (if (if (eq? 'let-values hd_0)
                (let ((a_0 (cdr (unwrap v_0))))
                  (let ((p_0 (unwrap a_0)))
                    (if (pair? p_0)
                      (if (let ((a_1 (car p_0)))
                            (let ((p_1 (unwrap a_1)))
                              (if (pair? p_1)
                                (if (let ((a_2 (car p_1)))
                                      (let ((p_2 (unwrap a_2)))
                                        (if (pair? p_2)
                                          (if (let ((a_3 (car p_2)))
                                                (let ((p_3 (unwrap a_3)))
                                                  (if (pair? p_3)
                                                    (let ((a_4 (cdr p_3)))
                                                      (let ((app_0
                                                             (unwrap '())))
                                                        (eq?
                                                         app_0
                                                         (unwrap a_4))))
                                                    #f)))
                                            (let ((a_3 (cdr p_2)))
                                              (let ((p_3 (unwrap a_3)))
                                                (if (pair? p_3)
                                                  (let ((a_4 (cdr p_3)))
                                                    (let ((app_0 (unwrap '())))
                                                      (eq?
                                                       app_0
                                                       (unwrap a_4))))
                                                  #f)))
                                            #f)
                                          #f)))
                                  (let ((a_2 (cdr p_1)))
                                    (let ((app_0 (unwrap '())))
                                      (eq? app_0 (unwrap a_2))))
                                  #f)
                                #f)))
                        (let ((a_1 (cdr p_0)))
                          (let ((p_1 (unwrap a_1)))
                            (if (pair? p_1)
                              (let ((a_2 (cdr p_1)))
                                (let ((app_0 (unwrap '())))
                                  (eq? app_0 (unwrap a_2))))
                              #f)))
                        #f)
                      #f)))
                #f)
            (call-with-values
             (lambda ()
               (let ((d_0 (cdr (unwrap v_0))))
                 (let ((p_0 (unwrap d_0)))
                   (call-with-values
                    (lambda ()
                      (let ((a_0 (car p_0)))
                        (let ((a_1 (car (unwrap a_0))))
                          (let ((p_1 (unwrap a_1)))
                            (let ((id_0
                                   (let ((a_2 (car p_1)))
                                     (let ((a_3 (car (unwrap a_2)))) a_3))))
                              (let ((rhs_0
                                     (let ((d_1 (cdr p_1)))
                                       (let ((a_2 (car (unwrap d_1)))) a_2))))
                                (let ((id_1 id_0)) (values id_1 rhs_0))))))))
                    (case-lambda
                     ((id_0 rhs_0)
                      (let ((body_0
                             (let ((d_1 (cdr p_0)))
                               (let ((a_0 (car (unwrap d_1)))) a_0))))
                        (let ((id_1 id_0) (rhs_1 rhs_0))
                          (values id_1 rhs_1 body_0))))
                     (args (raise-binding-result-arity-error 2 args)))))))
             (case-lambda
              ((id_0 rhs_0 body_0) (extract-let-lambda #f id_0 rhs_0 body_0))
              (args (raise-binding-result-arity-error 3 args))))
            (if (if (eq? 'letrec-values hd_0)
                  (let ((a_0 (cdr (unwrap v_0))))
                    (let ((p_0 (unwrap a_0)))
                      (if (pair? p_0)
                        (if (let ((a_1 (car p_0)))
                              (let ((p_1 (unwrap a_1)))
                                (if (pair? p_1)
                                  (if (let ((a_2 (car p_1)))
                                        (let ((p_2 (unwrap a_2)))
                                          (if (pair? p_2)
                                            (if (let ((a_3 (car p_2)))
                                                  (let ((p_3 (unwrap a_3)))
                                                    (if (pair? p_3)
                                                      (let ((a_4 (cdr p_3)))
                                                        (let ((app_0
                                                               (unwrap '())))
                                                          (eq?
                                                           app_0
                                                           (unwrap a_4))))
                                                      #f)))
                                              (let ((a_3 (cdr p_2)))
                                                (let ((p_3 (unwrap a_3)))
                                                  (if (pair? p_3)
                                                    (let ((a_4 (cdr p_3)))
                                                      (let ((app_0
                                                             (unwrap '())))
                                                        (eq?
                                                         app_0
                                                         (unwrap a_4))))
                                                    #f)))
                                              #f)
                                            #f)))
                                    (let ((a_2 (cdr p_1)))
                                      (let ((app_0 (unwrap '())))
                                        (eq? app_0 (unwrap a_2))))
                                    #f)
                                  #f)))
                          (let ((a_1 (cdr p_0)))
                            (let ((p_1 (unwrap a_1)))
                              (if (pair? p_1)
                                (let ((a_2 (cdr p_1)))
                                  (let ((app_0 (unwrap '())))
                                    (eq? app_0 (unwrap a_2))))
                                #f)))
                          #f)
                        #f)))
                  #f)
              (call-with-values
               (lambda ()
                 (let ((d_0 (cdr (unwrap v_0))))
                   (let ((p_0 (unwrap d_0)))
                     (call-with-values
                      (lambda ()
                        (let ((a_0 (car p_0)))
                          (let ((a_1 (car (unwrap a_0))))
                            (let ((p_1 (unwrap a_1)))
                              (let ((id_0
                                     (let ((a_2 (car p_1)))
                                       (let ((a_3 (car (unwrap a_2)))) a_3))))
                                (let ((rhs_0
                                       (let ((d_1 (cdr p_1)))
                                         (let ((a_2 (car (unwrap d_1))))
                                           a_2))))
                                  (let ((id_1 id_0)) (values id_1 rhs_0))))))))
                      (case-lambda
                       ((id_0 rhs_0)
                        (let ((body_0
                               (let ((d_1 (cdr p_0)))
                                 (let ((a_0 (car (unwrap d_1)))) a_0))))
                          (let ((id_1 id_0) (rhs_1 rhs_0))
                            (values id_1 rhs_1 body_0))))
                       (args (raise-binding-result-arity-error 2 args)))))))
               (case-lambda
                ((id_0 rhs_0 body_0) (extract-let-lambda #t id_0 rhs_0 body_0))
                (args (raise-binding-result-arity-error 3 args))))
              (if (if (eq? 'let hd_0)
                    (let ((a_0 (cdr (unwrap v_0))))
                      (let ((p_0 (unwrap a_0)))
                        (if (pair? p_0)
                          (if (let ((a_1 (car p_0)))
                                (let ((p_1 (unwrap a_1)))
                                  (if (pair? p_1)
                                    (if (let ((a_2 (car p_1)))
                                          (let ((p_2 (unwrap a_2)))
                                            (if (pair? p_2)
                                              (let ((a_3 (cdr p_2)))
                                                (let ((p_3 (unwrap a_3)))
                                                  (if (pair? p_3)
                                                    (let ((a_4 (cdr p_3)))
                                                      (let ((app_0
                                                             (unwrap '())))
                                                        (eq?
                                                         app_0
                                                         (unwrap a_4))))
                                                    #f)))
                                              #f)))
                                      (let ((a_2 (cdr p_1)))
                                        (let ((app_0 (unwrap '())))
                                          (eq? app_0 (unwrap a_2))))
                                      #f)
                                    #f)))
                            (let ((a_1 (cdr p_0)))
                              (let ((p_1 (unwrap a_1)))
                                (if (pair? p_1)
                                  (let ((a_2 (cdr p_1)))
                                    (let ((app_0 (unwrap '())))
                                      (eq? app_0 (unwrap a_2))))
                                  #f)))
                            #f)
                          #f)))
                    #f)
                (call-with-values
                 (lambda ()
                   (let ((d_0 (cdr (unwrap v_0))))
                     (let ((p_0 (unwrap d_0)))
                       (call-with-values
                        (lambda ()
                          (let ((a_0 (car p_0)))
                            (let ((a_1 (car (unwrap a_0))))
                              (let ((p_1 (unwrap a_1)))
                                (let ((id_0 (let ((a_2 (car p_1))) a_2)))
                                  (let ((rhs_0
                                         (let ((d_1 (cdr p_1)))
                                           (let ((a_2 (car (unwrap d_1))))
                                             a_2))))
                                    (let ((id_1 id_0))
                                      (values id_1 rhs_0))))))))
                        (case-lambda
                         ((id_0 rhs_0)
                          (let ((body_0
                                 (let ((d_1 (cdr p_0)))
                                   (let ((a_0 (car (unwrap d_1)))) a_0))))
                            (let ((id_1 id_0) (rhs_1 rhs_0))
                              (values id_1 rhs_1 body_0))))
                         (args (raise-binding-result-arity-error 2 args)))))))
                 (case-lambda
                  ((id_0 rhs_0 body_0)
                   (extract-let-lambda #f id_0 rhs_0 body_0))
                  (args (raise-binding-result-arity-error 3 args))))
                (if (if (eq? 'letrec* hd_0)
                      (let ((a_0 (cdr (unwrap v_0))))
                        (let ((p_0 (unwrap a_0)))
                          (if (pair? p_0)
                            (if (let ((a_1 (car p_0)))
                                  (let ((p_1 (unwrap a_1)))
                                    (if (pair? p_1)
                                      (if (let ((a_2 (car p_1)))
                                            (let ((p_2 (unwrap a_2)))
                                              (if (pair? p_2)
                                                (let ((a_3 (cdr p_2)))
                                                  (let ((p_3 (unwrap a_3)))
                                                    (if (pair? p_3)
                                                      (let ((a_4 (cdr p_3)))
                                                        (let ((app_0
                                                               (unwrap '())))
                                                          (eq?
                                                           app_0
                                                           (unwrap a_4))))
                                                      #f)))
                                                #f)))
                                        (let ((a_2 (cdr p_1)))
                                          (let ((app_0 (unwrap '())))
                                            (eq? app_0 (unwrap a_2))))
                                        #f)
                                      #f)))
                              (let ((a_1 (cdr p_0)))
                                (let ((p_1 (unwrap a_1)))
                                  (if (pair? p_1)
                                    (let ((a_2 (cdr p_1)))
                                      (let ((app_0 (unwrap '())))
                                        (eq? app_0 (unwrap a_2))))
                                    #f)))
                              #f)
                            #f)))
                      #f)
                  (call-with-values
                   (lambda ()
                     (let ((d_0 (cdr (unwrap v_0))))
                       (let ((p_0 (unwrap d_0)))
                         (call-with-values
                          (lambda ()
                            (let ((a_0 (car p_0)))
                              (let ((a_1 (car (unwrap a_0))))
                                (let ((p_1 (unwrap a_1)))
                                  (let ((id_0 (let ((a_2 (car p_1))) a_2)))
                                    (let ((rhs_0
                                           (let ((d_1 (cdr p_1)))
                                             (let ((a_2 (car (unwrap d_1))))
                                               a_2))))
                                      (let ((id_1 id_0))
                                        (values id_1 rhs_0))))))))
                          (case-lambda
                           ((id_0 rhs_0)
                            (let ((body_0
                                   (let ((d_1 (cdr p_0)))
                                     (let ((a_0 (car (unwrap d_1)))) a_0))))
                              (let ((id_1 id_0) (rhs_1 rhs_0))
                                (values id_1 rhs_1 body_0))))
                           (args
                            (raise-binding-result-arity-error 2 args)))))))
                   (case-lambda
                    ((id_0 rhs_0 body_0)
                     (extract-let-lambda #t id_0 rhs_0 body_0))
                    (args (raise-binding-result-arity-error 3 args))))
                  (if (if (eq? 'let-values hd_0)
                        (let ((a_0 (cdr (unwrap v_0))))
                          (let ((p_0 (unwrap a_0)))
                            (if (pair? p_0)
                              (let ((a_1 (cdr p_0)))
                                (let ((p_1 (unwrap a_1)))
                                  (if (pair? p_1)
                                    (let ((a_2 (cdr p_1)))
                                      (let ((app_0 (unwrap '())))
                                        (eq? app_0 (unwrap a_2))))
                                    #f)))
                              #f)))
                        #f)
                    (let ((body_0
                           (let ((d_0 (cdr (unwrap v_0))))
                             (let ((d_1 (cdr (unwrap d_0))))
                               (let ((a_0 (car (unwrap d_1)))) a_0)))))
                      (extract-lambda* body_0))
                    (if (if (eq? 'letrec-values hd_0)
                          (let ((a_0 (cdr (unwrap v_0))))
                            (let ((p_0 (unwrap a_0)))
                              (if (pair? p_0)
                                (let ((a_1 (cdr p_0)))
                                  (let ((p_1 (unwrap a_1)))
                                    (if (pair? p_1)
                                      (let ((a_2 (cdr p_1)))
                                        (let ((app_0 (unwrap '())))
                                          (eq? app_0 (unwrap a_2))))
                                      #f)))
                                #f)))
                          #f)
                      (let ((body_0
                             (let ((d_0 (cdr (unwrap v_0))))
                               (let ((d_1 (cdr (unwrap d_0))))
                                 (let ((a_0 (car (unwrap d_1)))) a_0)))))
                        (extract-lambda* body_0))
                      (if (if (eq? 'let hd_0)
                            (let ((a_0 (cdr (unwrap v_0))))
                              (let ((p_0 (unwrap a_0)))
                                (if (pair? p_0)
                                  (let ((a_1 (cdr p_0)))
                                    (let ((p_1 (unwrap a_1)))
                                      (if (pair? p_1)
                                        (let ((a_2 (cdr p_1)))
                                          (let ((app_0 (unwrap '())))
                                            (eq? app_0 (unwrap a_2))))
                                        #f)))
                                  #f)))
                            #f)
                        (let ((body_0
                               (let ((d_0 (cdr (unwrap v_0))))
                                 (let ((d_1 (cdr (unwrap d_0))))
                                   (let ((a_0 (car (unwrap d_1)))) a_0)))))
                          (extract-lambda* body_0))
                        (if (if (eq? 'letrec* hd_0)
                              (let ((a_0 (cdr (unwrap v_0))))
                                (let ((p_0 (unwrap a_0)))
                                  (if (pair? p_0)
                                    (let ((a_1 (cdr p_0)))
                                      (let ((p_1 (unwrap a_1)))
                                        (if (pair? p_1)
                                          (let ((a_2 (cdr p_1)))
                                            (let ((app_0 (unwrap '())))
                                              (eq? app_0 (unwrap a_2))))
                                          #f)))
                                    #f)))
                              #f)
                          (let ((body_0
                                 (let ((d_0 (cdr (unwrap v_0))))
                                   (let ((d_1 (cdr (unwrap d_0))))
                                     (let ((a_0 (car (unwrap d_1)))) a_0)))))
                            (extract-lambda* body_0))
                          (if (if (eq? 'begin hd_0)
                                (let ((a_0 (cdr (unwrap v_0))))
                                  (let ((p_0 (unwrap a_0)))
                                    (if (pair? p_0)
                                      (let ((a_1 (cdr p_0)))
                                        (let ((app_0 (unwrap '())))
                                          (eq? app_0 (unwrap a_1))))
                                      #f)))
                                #f)
                            (let ((body_0
                                   (let ((d_0 (cdr (unwrap v_0))))
                                     (let ((a_0 (car (unwrap d_0)))) a_0))))
                              (extract-lambda body_0))
                            (if (if (eq? 'values hd_0)
                                  (let ((a_0 (cdr (unwrap v_0))))
                                    (let ((p_0 (unwrap a_0)))
                                      (if (pair? p_0)
                                        (let ((a_1 (cdr p_0)))
                                          (let ((app_0 (unwrap '())))
                                            (eq? app_0 (unwrap a_1))))
                                        #f)))
                                  #f)
                              (let ((body_0
                                     (let ((d_0 (cdr (unwrap v_0))))
                                       (let ((a_0 (car (unwrap d_0)))) a_0))))
                                (extract-lambda body_0))
                              (error 'match "failed ~e" v_0))))))))))))))))
(define extract-let-lambda
  (lambda (rec?_0 id_0 rhs_0 body_0)
    (if (let ((app_0 (unwrap id_0))) (eq? app_0 (unwrap body_0)))
      (if rec?_0 (extract-lambda* rhs_0) (extract-lambda rhs_0))
      (extract-lambda* body_0))))
(define extract-lambda*
  (lambda (v_0)
    (call-with-values
     (lambda () (extract-lambda v_0))
     (case-lambda
      ((lam_0 inlinable?_0) (values lam_0 #f))
      (args (raise-binding-result-arity-error 2 args))))))
(define lambda-arity-mask
  (lambda (v_0)
    (let ((hd_0
           (let ((p_0 (unwrap v_0))) (if (pair? p_0) (unwrap (car p_0)) #f))))
      (if (if (eq? 'lambda hd_0)
            (let ((a_0 (cdr (unwrap v_0))))
              (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
            #f)
        (let ((args_0
               (let ((d_0 (cdr (unwrap v_0))))
                 (let ((a_0 (car (unwrap d_0)))) a_0))))
          (args-arity-mask args_0))
        (if (if (eq? 'case-lambda hd_0)
              (let ((a_0 (cdr (unwrap v_0))))
                (if (wrap-list? a_0)
                  (begin
                    (letrec*
                     ((for-loop_0
                       (|#%name|
                        for-loop
                        (lambda (result_0 lst_0)
                          (begin
                            (if (not (null? (unwrap lst_0)))
                              (let ((v_1
                                     (if (pair? (unwrap lst_0))
                                       (wrap-car lst_0)
                                       lst_0)))
                                (let ((rest_0
                                       (if (pair? (unwrap lst_0))
                                         (wrap-cdr lst_0)
                                         null)))
                                  (let ((v_2 v_1))
                                    (let ((result_1
                                           (let ((result_1
                                                  (let ((p_0 (unwrap v_2)))
                                                    (if (pair? p_0) #t #f))))
                                             (values result_1))))
                                      (if (if (not
                                               (let ((x_0 (list v_2)))
                                                 (not result_1)))
                                            #t
                                            #f)
                                        (for-loop_0 result_1 rest_0)
                                        result_1)))))
                              result_0))))))
                     (for-loop_0 #t a_0)))
                  #f))
              #f)
          (let ((argss_0
                 (let ((d_0 (cdr (unwrap v_0))))
                   (let ((argss_0
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (argss_0 lst_0)
                                  (begin
                                    (if (not (null? (unwrap lst_0)))
                                      (let ((v_1
                                             (if (pair? (unwrap lst_0))
                                               (wrap-car lst_0)
                                               lst_0)))
                                        (let ((rest_0
                                               (if (pair? (unwrap lst_0))
                                                 (wrap-cdr lst_0)
                                                 null)))
                                          (let ((v_2 v_1))
                                            (let ((argss_1
                                                   (let ((argss_1
                                                          (let ((argss60_0
                                                                 (let ((a_0
                                                                        (car
                                                                         (unwrap
                                                                          v_2))))
                                                                   a_0)))
                                                            (cons
                                                             argss60_0
                                                             argss_0))))
                                                     (values argss_1))))
                                              (for-loop_0 argss_1 rest_0)))))
                                      argss_0))))))
                             (for-loop_0 null d_0)))))
                     (reverse$1 argss_0)))))
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (mask_0 lst_0)
                    (begin
                      (if (pair? lst_0)
                        (let ((args_0 (unsafe-car lst_0)))
                          (let ((rest_0 (unsafe-cdr lst_0)))
                            (let ((mask_1
                                   (let ((mask_1
                                          (bitwise-ior
                                           mask_0
                                           (args-arity-mask args_0))))
                                     (values mask_1))))
                              (for-loop_0 mask_1 rest_0))))
                        mask_0))))))
               (for-loop_0 0 argss_0))))
          (error 'match "failed ~e" v_0))))))
(define args-arity-mask
  (lambda (args_0)
    (if (null? (unwrap args_0))
      1
      (if (pair? (unwrap args_0))
        (arithmetic-shift (args-arity-mask (wrap-cdr args_0)) 1)
        -1))))
(define find-definitions.1
  (|#%name|
   find-definitions
   (lambda (optimize?2_0
            primitives1_0
            v5_0
            prim-knowns6_0
            knowns7_0
            imports8_0
            mutated9_0
            simples10_0
            unsafe-mode?11_0)
     (begin
       (let ((hd_0
              (let ((p_0 (unwrap v5_0)))
                (if (pair? p_0) (unwrap (car p_0)) #f))))
         (if (if (eq? 'define-values hd_0)
               (let ((a_0 (cdr (unwrap v5_0))))
                 (let ((p_0 (unwrap a_0)))
                   (if (pair? p_0)
                     (if (let ((a_1 (car p_0)))
                           (let ((p_1 (unwrap a_1)))
                             (if (pair? p_1)
                               (let ((a_2 (cdr p_1)))
                                 (let ((app_0 (unwrap '())))
                                   (eq? app_0 (unwrap a_2))))
                               #f)))
                       (let ((a_1 (cdr p_0)))
                         (let ((p_1 (unwrap a_1)))
                           (if (pair? p_1)
                             (let ((a_2 (cdr p_1)))
                               (let ((app_0 (unwrap '())))
                                 (eq? app_0 (unwrap a_2))))
                             #f)))
                       #f)
                     #f)))
               #f)
           (call-with-values
            (lambda ()
              (let ((d_0 (cdr (unwrap v5_0))))
                (let ((p_0 (unwrap d_0)))
                  (let ((id_0
                         (let ((a_0 (car p_0)))
                           (let ((a_1 (car (unwrap a_0)))) a_1))))
                    (let ((orig-rhs_0
                           (let ((d_1 (cdr p_0)))
                             (let ((a_0 (car (unwrap d_1)))) a_0))))
                      (let ((id_1 id_0)) (values id_1 orig-rhs_0)))))))
            (case-lambda
             ((id_0 orig-rhs_0)
              (let ((rhs_0
                     (if optimize?2_0
                       (optimize
                        orig-rhs_0
                        prim-knowns6_0
                        primitives1_0
                        knowns7_0
                        imports8_0
                        mutated9_0)
                       orig-rhs_0)))
                (values
                 (let ((k_0
                        (infer-known.1
                         optimize?2_0
                         #f
                         primitives1_0
                         rhs_0
                         v5_0
                         id_0
                         knowns7_0
                         prim-knowns6_0
                         imports8_0
                         mutated9_0
                         simples10_0
                         unsafe-mode?11_0)))
                   (if k_0 (hash-set knowns7_0 (unwrap id_0) k_0) knowns7_0))
                 #f)))
             (args (raise-binding-result-arity-error 2 args))))
           (if (if (eq? 'define-values hd_0)
                 (let ((a_0 (cdr (unwrap v5_0))))
                   (let ((p_0 (unwrap a_0)))
                     (if (pair? p_0)
                       (if (let ((a_1 (car p_0)))
                             (let ((p_1 (unwrap a_1)))
                               (if (pair? p_1)
                                 (let ((a_2 (cdr p_1)))
                                   (let ((p_2 (unwrap a_2)))
                                     (if (pair? p_2)
                                       (let ((a_3 (cdr p_2)))
                                         (let ((p_3 (unwrap a_3)))
                                           (if (pair? p_3)
                                             (let ((a_4 (cdr p_3)))
                                               (wrap-list? a_4))
                                             #f)))
                                       #f)))
                                 #f)))
                         (let ((a_1 (cdr p_0)))
                           (let ((p_1 (unwrap a_1)))
                             (if (pair? p_1)
                               (if (let ((a_2 (car p_1)))
                                     (let ((p_2 (unwrap a_2)))
                                       (if (pair? p_2)
                                         (if (let ((a_3 (car p_2)))
                                               (let ((app_0
                                                      (unwrap 'let-values)))
                                                 (eq? app_0 (unwrap a_3))))
                                           (let ((a_3 (cdr p_2)))
                                             (let ((p_3 (unwrap a_3)))
                                               (if (pair? p_3)
                                                 (if (let ((a_4 (car p_3)))
                                                       (let ((p_4
                                                              (unwrap a_4)))
                                                         (if (pair? p_4)
                                                           (if (let ((a_5
                                                                      (car
                                                                       p_4)))
                                                                 (let ((p_5
                                                                        (unwrap
                                                                         a_5)))
                                                                   (if (pair?
                                                                        p_5)
                                                                     (if (let ((a_6
                                                                                (car
                                                                                 p_5)))
                                                                           (let ((p_6
                                                                                  (unwrap
                                                                                   a_6)))
                                                                             (if (pair?
                                                                                  p_6)
                                                                               (let ((a_7
                                                                                      (cdr
                                                                                       p_6)))
                                                                                 (let ((p_7
                                                                                        (unwrap
                                                                                         a_7)))
                                                                                   (if (pair?
                                                                                        p_7)
                                                                                     (let ((a_8
                                                                                            (cdr
                                                                                             p_7)))
                                                                                       (let ((p_8
                                                                                              (unwrap
                                                                                               a_8)))
                                                                                         (if (pair?
                                                                                              p_8)
                                                                                           (let ((a_9
                                                                                                  (cdr
                                                                                                   p_8)))
                                                                                             (let ((p_9
                                                                                                    (unwrap
                                                                                                     a_9)))
                                                                                               (if (pair?
                                                                                                    p_9)
                                                                                                 (let ((a_10
                                                                                                        (cdr
                                                                                                         p_9)))
                                                                                                   (let ((p_10
                                                                                                          (unwrap
                                                                                                           a_10)))
                                                                                                     (if (pair?
                                                                                                          p_10)
                                                                                                       (let ((a_11
                                                                                                              (cdr
                                                                                                               p_10)))
                                                                                                         (let ((app_0
                                                                                                                (unwrap
                                                                                                                 '())))
                                                                                                           (eq?
                                                                                                            app_0
                                                                                                            (unwrap
                                                                                                             a_11))))
                                                                                                       #f)))
                                                                                                 #f)))
                                                                                           #f)))
                                                                                     #f)))
                                                                               #f)))
                                                                       (let ((a_6
                                                                              (cdr
                                                                               p_5)))
                                                                         (let ((p_6
                                                                                (unwrap
                                                                                 a_6)))
                                                                           (if (pair?
                                                                                p_6)
                                                                             (let ((a_7
                                                                                    (cdr
                                                                                     p_6)))
                                                                               (let ((app_0
                                                                                      (unwrap
                                                                                       '())))
                                                                                 (eq?
                                                                                  app_0
                                                                                  (unwrap
                                                                                   a_7))))
                                                                             #f)))
                                                                       #f)
                                                                     #f)))
                                                             (let ((a_5
                                                                    (cdr p_4)))
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_5))))
                                                             #f)
                                                           #f)))
                                                   (let ((a_4 (cdr p_3)))
                                                     (let ((p_4 (unwrap a_4)))
                                                       (if (pair? p_4)
                                                         (if (let ((a_5
                                                                    (car p_4)))
                                                               (let ((p_5
                                                                      (unwrap
                                                                       a_5)))
                                                                 (if (pair?
                                                                      p_5)
                                                                   (if (let ((a_6
                                                                              (car
                                                                               p_5)))
                                                                         (let ((app_0
                                                                                (unwrap
                                                                                 'values)))
                                                                           (eq?
                                                                            app_0
                                                                            (unwrap
                                                                             a_6))))
                                                                     (let ((a_6
                                                                            (cdr
                                                                             p_5)))
                                                                       (let ((p_6
                                                                              (unwrap
                                                                               a_6)))
                                                                         (if (pair?
                                                                              p_6)
                                                                           (let ((a_7
                                                                                  (cdr
                                                                                   p_6)))
                                                                             (let ((p_7
                                                                                    (unwrap
                                                                                     a_7)))
                                                                               (if (pair?
                                                                                    p_7)
                                                                                 (let ((a_8
                                                                                        (cdr
                                                                                         p_7)))
                                                                                   (let ((p_8
                                                                                          (unwrap
                                                                                           a_8)))
                                                                                     (if (pair?
                                                                                          p_8)
                                                                                       (let ((a_9
                                                                                              (cdr
                                                                                               p_8)))
                                                                                         (wrap-list?
                                                                                          a_9))
                                                                                       #f)))
                                                                                 #f)))
                                                                           #f)))
                                                                     #f)
                                                                   #f)))
                                                           (let ((a_5
                                                                  (cdr p_4)))
                                                             (let ((app_0
                                                                    (unwrap
                                                                     '())))
                                                               (eq?
                                                                app_0
                                                                (unwrap a_5))))
                                                           #f)
                                                         #f)))
                                                   #f)
                                                 #f)))
                                           #f)
                                         #f)))
                                 (let ((a_2 (cdr p_1)))
                                   (let ((app_0 (unwrap '())))
                                     (eq? app_0 (unwrap a_2))))
                                 #f)
                               #f)))
                         #f)
                       #f)))
                 #f)
             (call-with-values
              (lambda ()
                (let ((d_0 (cdr (unwrap v5_0))))
                  (let ((p_0 (unwrap d_0)))
                    (call-with-values
                     (lambda ()
                       (let ((a_0 (car p_0)))
                         (let ((p_1 (unwrap a_0)))
                           (let ((struct:s_0 (let ((a_1 (car p_1))) a_1)))
                             (call-with-values
                              (lambda ()
                                (let ((d_1 (cdr p_1)))
                                  (let ((p_2 (unwrap d_1)))
                                    (let ((make-s_0
                                           (let ((a_1 (car p_2))) a_1)))
                                      (call-with-values
                                       (lambda ()
                                         (let ((d_2 (cdr p_2)))
                                           (let ((p_3 (unwrap d_2)))
                                             (let ((s?_0
                                                    (let ((a_1 (car p_3)))
                                                      a_1)))
                                               (let ((acc/muts_0
                                                      (let ((d_3 (cdr p_3)))
                                                        (unwrap-list d_3))))
                                                 (let ((s?_1 s?_0))
                                                   (values
                                                    s?_1
                                                    acc/muts_0)))))))
                                       (case-lambda
                                        ((s?_0 acc/muts_0)
                                         (let ((make-s_1 make-s_0))
                                           (values make-s_1 s?_0 acc/muts_0)))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))))))
                              (case-lambda
                               ((make-s_0 s?_0 acc/muts_0)
                                (let ((struct:s_1 struct:s_0))
                                  (values
                                   struct:s_1
                                   make-s_0
                                   s?_0
                                   acc/muts_0)))
                               (args
                                (raise-binding-result-arity-error
                                 3
                                 args))))))))
                     (case-lambda
                      ((struct:s_0 make-s_0 s?_0 acc/muts_0)
                       (call-with-values
                        (lambda ()
                          (let ((d_1 (cdr p_0)))
                            (let ((a_0 (car (unwrap d_1))))
                              (let ((d_2 (cdr (unwrap a_0))))
                                (let ((p_1 (unwrap d_2)))
                                  (call-with-values
                                   (lambda ()
                                     (let ((a_1 (car p_1)))
                                       (let ((a_2 (car (unwrap a_1))))
                                         (let ((p_2 (unwrap a_2)))
                                           (call-with-values
                                            (lambda ()
                                              (let ((a_3 (car p_2)))
                                                (let ((p_3 (unwrap a_3)))
                                                  (let ((struct:_0
                                                         (let ((a_4 (car p_3)))
                                                           a_4)))
                                                    (call-with-values
                                                     (lambda ()
                                                       (let ((d_3 (cdr p_3)))
                                                         (let ((p_4
                                                                (unwrap d_3)))
                                                           (let ((make_0
                                                                  (let ((a_4
                                                                         (car
                                                                          p_4)))
                                                                    a_4)))
                                                             (call-with-values
                                                              (lambda ()
                                                                (let ((d_4
                                                                       (cdr
                                                                        p_4)))
                                                                  (let ((p_5
                                                                         (unwrap
                                                                          d_4)))
                                                                    (let ((?_0
                                                                           (let ((a_4
                                                                                  (car
                                                                                   p_5)))
                                                                             a_4)))
                                                                      (call-with-values
                                                                       (lambda ()
                                                                         (let ((d_5
                                                                                (cdr
                                                                                 p_5)))
                                                                           (let ((p_6
                                                                                  (unwrap
                                                                                   d_5)))
                                                                             (let ((-ref_0
                                                                                    (let ((a_4
                                                                                           (car
                                                                                            p_6)))
                                                                                      a_4)))
                                                                               (let ((-set!_0
                                                                                      (let ((d_6
                                                                                             (cdr
                                                                                              p_6)))
                                                                                        (let ((a_4
                                                                                               (car
                                                                                                (unwrap
                                                                                                 d_6))))
                                                                                          a_4))))
                                                                                 (let ((-ref_1
                                                                                        -ref_0))
                                                                                   (values
                                                                                    -ref_1
                                                                                    -set!_0)))))))
                                                                       (case-lambda
                                                                        ((-ref_0
                                                                          -set!_0)
                                                                         (let ((?_1
                                                                                ?_0))
                                                                           (values
                                                                            ?_1
                                                                            -ref_0
                                                                            -set!_0)))
                                                                        (args
                                                                         (raise-binding-result-arity-error
                                                                          2
                                                                          args))))))))
                                                              (case-lambda
                                                               ((?_0
                                                                 -ref_0
                                                                 -set!_0)
                                                                (let ((make_1
                                                                       make_0))
                                                                  (values
                                                                   make_1
                                                                   ?_0
                                                                   -ref_0
                                                                   -set!_0)))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 3
                                                                 args))))))))
                                                     (case-lambda
                                                      ((make_0
                                                        ?_0
                                                        -ref_0
                                                        -set!_0)
                                                       (let ((struct:_1
                                                              struct:_0))
                                                         (values
                                                          struct:_1
                                                          make_0
                                                          ?_0
                                                          -ref_0
                                                          -set!_0)))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        4
                                                        args))))))))
                                            (case-lambda
                                             ((struct:_0
                                               make_0
                                               ?_0
                                               -ref_0
                                               -set!_0)
                                              (let ((rhs_0
                                                     (let ((d_3 (cdr p_2)))
                                                       (let ((a_3
                                                              (car
                                                               (unwrap d_3))))
                                                         a_3))))
                                                (let ((struct:_1 struct:_0)
                                                      (make_1 make_0)
                                                      (?_1 ?_0)
                                                      (-ref_1 -ref_0)
                                                      (-set!_1 -set!_0))
                                                  (values
                                                   struct:_1
                                                   make_1
                                                   ?_1
                                                   -ref_1
                                                   -set!_1
                                                   rhs_0))))
                                             (args
                                              (raise-binding-result-arity-error
                                               5
                                               args))))))))
                                   (case-lambda
                                    ((struct:_0
                                      make_0
                                      ?_0
                                      -ref_0
                                      -set!_0
                                      rhs_0)
                                     (call-with-values
                                      (lambda ()
                                        (let ((d_3 (cdr p_1)))
                                          (let ((a_1 (car (unwrap d_3))))
                                            (let ((d_4 (cdr (unwrap a_1))))
                                              (let ((p_2 (unwrap d_4)))
                                                (let ((struct:2_0
                                                       (let ((a_2 (car p_2)))
                                                         a_2)))
                                                  (call-with-values
                                                   (lambda ()
                                                     (let ((d_5 (cdr p_2)))
                                                       (let ((p_3
                                                              (unwrap d_5)))
                                                         (let ((make2_0
                                                                (let ((a_2
                                                                       (car
                                                                        p_3)))
                                                                  a_2)))
                                                           (call-with-values
                                                            (lambda ()
                                                              (let ((d_6
                                                                     (cdr
                                                                      p_3)))
                                                                (let ((p_4
                                                                       (unwrap
                                                                        d_6)))
                                                                  (let ((?2_0
                                                                         (let ((a_2
                                                                                (car
                                                                                 p_4)))
                                                                           a_2)))
                                                                    (let ((make-acc/muts_0
                                                                           (let ((d_7
                                                                                  (cdr
                                                                                   p_4)))
                                                                             (unwrap-list
                                                                              d_7))))
                                                                      (let ((?2_1
                                                                             ?2_0))
                                                                        (values
                                                                         ?2_1
                                                                         make-acc/muts_0)))))))
                                                            (case-lambda
                                                             ((?2_0
                                                               make-acc/muts_0)
                                                              (let ((make2_1
                                                                     make2_0))
                                                                (values
                                                                 make2_1
                                                                 ?2_0
                                                                 make-acc/muts_0)))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               2
                                                               args))))))))
                                                   (case-lambda
                                                    ((make2_0
                                                      ?2_0
                                                      make-acc/muts_0)
                                                     (let ((struct:2_1
                                                            struct:2_0))
                                                       (values
                                                        struct:2_1
                                                        make2_0
                                                        ?2_0
                                                        make-acc/muts_0)))
                                                    (args
                                                     (raise-binding-result-arity-error
                                                      3
                                                      args))))))))))
                                      (case-lambda
                                       ((struct:2_0
                                         make2_0
                                         ?2_0
                                         make-acc/muts_0)
                                        (let ((struct:_1 struct:_0)
                                              (make_1 make_0)
                                              (?_1 ?_0)
                                              (-ref_1 -ref_0)
                                              (-set!_1 -set!_0)
                                              (rhs_1 rhs_0))
                                          (values
                                           struct:_1
                                           make_1
                                           ?_1
                                           -ref_1
                                           -set!_1
                                           rhs_1
                                           struct:2_0
                                           make2_0
                                           ?2_0
                                           make-acc/muts_0)))
                                       (args
                                        (raise-binding-result-arity-error
                                         4
                                         args)))))
                                    (args
                                     (raise-binding-result-arity-error
                                      6
                                      args)))))))))
                        (case-lambda
                         ((struct:_0
                           make_0
                           ?_0
                           -ref_0
                           -set!_0
                           rhs_0
                           struct:2_0
                           make2_0
                           ?2_0
                           make-acc/muts_0)
                          (let ((struct:s_1 struct:s_0)
                                (make-s_1 make-s_0)
                                (s?_1 s?_0)
                                (acc/muts_1 acc/muts_0))
                            (values
                             struct:s_1
                             make-s_1
                             s?_1
                             acc/muts_1
                             struct:_0
                             make_0
                             ?_0
                             -ref_0
                             -set!_0
                             rhs_0
                             struct:2_0
                             make2_0
                             ?2_0
                             make-acc/muts_0)))
                         (args (raise-binding-result-arity-error 10 args)))))
                      (args (raise-binding-result-arity-error 4 args)))))))
              (case-lambda
               ((struct:s_0
                 make-s_0
                 s?_0
                 acc/muts_0
                 struct:_0
                 make_0
                 ?_0
                 -ref_0
                 -set!_0
                 rhs_0
                 struct:2_0
                 make2_0
                 ?2_0
                 make-acc/muts_0)
                (let ((info_0
                       (if (let ((app_0 (unwrap struct:_0)))
                             (eq? app_0 (unwrap struct:2_0)))
                         (if (let ((app_0 (unwrap make_0)))
                               (eq? app_0 (unwrap make2_0)))
                           (if (let ((app_0 (unwrap ?_0)))
                                 (eq? app_0 (unwrap ?2_0)))
                             (make-struct-type-info
                              rhs_0
                              prim-knowns6_0
                              knowns7_0
                              imports8_0
                              mutated9_0)
                             #f)
                           #f)
                         #f)))
                  (if info_0
                    (let ((type_0
                           (string->uninterned-symbol
                            (symbol->string (unwrap make-s_0)))))
                      (let ((knowns_0
                             (let ((app_0 (unwrap make-s_0)))
                               (hash-set
                                knowns7_0
                                app_0
                                (if (struct-type-info-pure-constructor? info_0)
                                  (known-constructor
                                   (arithmetic-shift
                                    1
                                    (struct-type-info-field-count info_0))
                                   type_0)
                                  a-known-constant)))))
                        (let ((knowns_1
                               (let ((app_0 (unwrap s?_0)))
                                 (hash-set
                                  knowns_0
                                  app_0
                                  (known-struct-predicate
                                   2
                                   type_0
                                   struct:s_0
                                   (struct-type-info-authentic? info_0))))))
                          (let ((knowns_2
                                 (let ((immediate-count_0
                                        (struct-type-info-immediate-field-count
                                         info_0)))
                                   (let ((parent-count_0
                                          (-
                                           (struct-type-info-field-count
                                            info_0)
                                           immediate-count_0)))
                                     (begin
                                       (letrec*
                                        ((for-loop_0
                                          (|#%name|
                                           for-loop
                                           (lambda (knowns_2 lst_0 lst_1)
                                             (begin
                                               (if (if (pair? lst_0)
                                                     (pair? lst_1)
                                                     #f)
                                                 (let ((id_0
                                                        (unsafe-car lst_0)))
                                                   (let ((rest_0
                                                          (unsafe-cdr lst_0)))
                                                     (let ((maker_0
                                                            (unsafe-car
                                                             lst_1)))
                                                       (let ((rest_1
                                                              (unsafe-cdr
                                                               lst_1)))
                                                         (let ((knowns_3
                                                                (let ((knowns_3
                                                                       (if (let ((p_0
                                                                                  (unwrap
                                                                                   maker_0)))
                                                                             (if (pair?
                                                                                  p_0)
                                                                               (let ((a_0
                                                                                      (cdr
                                                                                       p_0)))
                                                                                 (let ((p_1
                                                                                        (unwrap
                                                                                         a_0)))
                                                                                   (if (pair?
                                                                                        p_1)
                                                                                     (let ((a_1
                                                                                            (cdr
                                                                                             p_1)))
                                                                                       (let ((p_2
                                                                                              (unwrap
                                                                                               a_1)))
                                                                                         (if (pair?
                                                                                              p_2)
                                                                                           (let ((a_2
                                                                                                  (cdr
                                                                                                   p_2)))
                                                                                             (let ((p_3
                                                                                                    (unwrap
                                                                                                     a_2)))
                                                                                               (if (pair?
                                                                                                    p_3)
                                                                                                 (if (let ((a_3
                                                                                                            (car
                                                                                                             p_3)))
                                                                                                       (let ((p_4
                                                                                                              (unwrap
                                                                                                               a_3)))
                                                                                                         (if (pair?
                                                                                                              p_4)
                                                                                                           (if (let ((a_4
                                                                                                                      (car
                                                                                                                       p_4)))
                                                                                                                 (let ((app_0
                                                                                                                        (unwrap
                                                                                                                         'quote)))
                                                                                                                   (eq?
                                                                                                                    app_0
                                                                                                                    (unwrap
                                                                                                                     a_4))))
                                                                                                             (let ((a_4
                                                                                                                    (cdr
                                                                                                                     p_4)))
                                                                                                               (let ((p_5
                                                                                                                      (unwrap
                                                                                                                       a_4)))
                                                                                                                 (if (pair?
                                                                                                                      p_5)
                                                                                                                   (let ((a_5
                                                                                                                          (cdr
                                                                                                                           p_5)))
                                                                                                                     (let ((app_0
                                                                                                                            (unwrap
                                                                                                                             '())))
                                                                                                                       (eq?
                                                                                                                        app_0
                                                                                                                        (unwrap
                                                                                                                         a_5))))
                                                                                                                   #f)))
                                                                                                             #f)
                                                                                                           #f)))
                                                                                                   (let ((a_3
                                                                                                          (cdr
                                                                                                           p_3)))
                                                                                                     (let ((app_0
                                                                                                            (unwrap
                                                                                                             '())))
                                                                                                       (eq?
                                                                                                        app_0
                                                                                                        (unwrap
                                                                                                         a_3))))
                                                                                                   #f)
                                                                                                 #f)))
                                                                                           #f)))
                                                                                     #f)))
                                                                               #f))
                                                                         (call-with-values
                                                                          (lambda ()
                                                                            (let ((p_0
                                                                                   (unwrap
                                                                                    maker_0)))
                                                                              (let ((make_1
                                                                                     (let ((a_0
                                                                                            (car
                                                                                             p_0)))
                                                                                       a_0)))
                                                                                (call-with-values
                                                                                 (lambda ()
                                                                                   (let ((d_0
                                                                                          (cdr
                                                                                           p_0)))
                                                                                     (let ((p_1
                                                                                            (unwrap
                                                                                             d_0)))
                                                                                       (let ((ref-or-set_0
                                                                                              (let ((a_0
                                                                                                     (car
                                                                                                      p_1)))
                                                                                                a_0)))
                                                                                         (call-with-values
                                                                                          (lambda ()
                                                                                            (let ((d_1
                                                                                                   (cdr
                                                                                                    p_1)))
                                                                                              (let ((p_2
                                                                                                     (unwrap
                                                                                                      d_1)))
                                                                                                (let ((pos_0
                                                                                                       (let ((a_0
                                                                                                              (car
                                                                                                               p_2)))
                                                                                                         a_0)))
                                                                                                  (let ((name_0
                                                                                                         (let ((d_2
                                                                                                                (cdr
                                                                                                                 p_2)))
                                                                                                           (let ((a_0
                                                                                                                  (car
                                                                                                                   (unwrap
                                                                                                                    d_2))))
                                                                                                             (let ((d_3
                                                                                                                    (cdr
                                                                                                                     (unwrap
                                                                                                                      a_0))))
                                                                                                               (let ((a_1
                                                                                                                      (car
                                                                                                                       (unwrap
                                                                                                                        d_3))))
                                                                                                                 a_1))))))
                                                                                                    (let ((pos_1
                                                                                                           pos_0))
                                                                                                      (values
                                                                                                       pos_1
                                                                                                       name_0)))))))
                                                                                          (case-lambda
                                                                                           ((pos_0
                                                                                             name_0)
                                                                                            (let ((ref-or-set_1
                                                                                                   ref-or-set_0))
                                                                                              (values
                                                                                               ref-or-set_1
                                                                                               pos_0
                                                                                               name_0)))
                                                                                           (args
                                                                                            (raise-binding-result-arity-error
                                                                                             2
                                                                                             args))))))))
                                                                                 (case-lambda
                                                                                  ((ref-or-set_0
                                                                                    pos_0
                                                                                    name_0)
                                                                                   (let ((make_2
                                                                                          make_1))
                                                                                     (values
                                                                                      make_2
                                                                                      ref-or-set_0
                                                                                      pos_0
                                                                                      name_0)))
                                                                                  (args
                                                                                   (raise-binding-result-arity-error
                                                                                    3
                                                                                    args)))))))
                                                                          (case-lambda
                                                                           ((make_1
                                                                             ref-or-set_0
                                                                             pos_0
                                                                             name_0)
                                                                            (let ((or-part_0
                                                                                   (if (exact-nonnegative-integer?
                                                                                        pos_0)
                                                                                     (if (<
                                                                                          pos_0
                                                                                          immediate-count_0)
                                                                                       (if (symbol?
                                                                                            name_0)
                                                                                         (if (if (let ((app_0
                                                                                                        (unwrap
                                                                                                         make_1)))
                                                                                                   (eq?
                                                                                                    app_0
                                                                                                    (unwrap
                                                                                                     'make-struct-field-accessor)))
                                                                                               (let ((app_0
                                                                                                      (unwrap
                                                                                                       ref-or-set_0)))
                                                                                                 (eq?
                                                                                                  app_0
                                                                                                  (unwrap
                                                                                                   -ref_0)))
                                                                                               #f)
                                                                                           (let ((app_0
                                                                                                  (unwrap
                                                                                                   id_0)))
                                                                                             (hash-set
                                                                                              knowns_2
                                                                                              app_0
                                                                                              (known-field-accessor
                                                                                               2
                                                                                               type_0
                                                                                               struct:s_0
                                                                                               (+
                                                                                                parent-count_0
                                                                                                pos_0))))
                                                                                           (if (if (let ((app_0
                                                                                                          (unwrap
                                                                                                           make_1)))
                                                                                                     (eq?
                                                                                                      app_0
                                                                                                      (unwrap
                                                                                                       'make-struct-field-mutator)))
                                                                                                 (let ((app_0
                                                                                                        (unwrap
                                                                                                         ref-or-set_0)))
                                                                                                   (eq?
                                                                                                    app_0
                                                                                                    (unwrap
                                                                                                     -set!_0)))
                                                                                                 #f)
                                                                                             (let ((app_0
                                                                                                    (unwrap
                                                                                                     id_0)))
                                                                                               (hash-set
                                                                                                knowns_2
                                                                                                app_0
                                                                                                (known-field-mutator
                                                                                                 4
                                                                                                 type_0
                                                                                                 struct:s_0
                                                                                                 (+
                                                                                                  parent-count_0
                                                                                                  pos_0))))
                                                                                             knowns_2))
                                                                                         #f)
                                                                                       #f)
                                                                                     #f)))
                                                                              (if or-part_0
                                                                                or-part_0
                                                                                knowns_2)))
                                                                           (args
                                                                            (raise-binding-result-arity-error
                                                                             4
                                                                             args))))
                                                                         knowns_2)))
                                                                  (values
                                                                   knowns_3))))
                                                           (for-loop_0
                                                            knowns_3
                                                            rest_0
                                                            rest_1))))))
                                                 knowns_2))))))
                                        (for-loop_0
                                         knowns_1
                                         acc/muts_0
                                         make-acc/muts_0)))))))
                            (values
                             (let ((app_0 (unwrap struct:s_0)))
                               (hash-set
                                knowns_2
                                app_0
                                (let ((app_1
                                       (struct-type-info-field-count info_0)))
                                  (known-struct-type
                                   type_0
                                   app_1
                                   (struct-type-info-pure-constructor?
                                    info_0)))))
                             info_0)))))
                    (values knowns7_0 #f))))
               (args (raise-binding-result-arity-error 14 args))))
             (if (if (eq? 'define-values hd_0)
                   (let ((a_0 (cdr (unwrap v5_0))))
                     (let ((p_0 (unwrap a_0)))
                       (if (pair? p_0)
                         (if (let ((a_1 (car p_0)))
                               (let ((p_1 (unwrap a_1)))
                                 (if (pair? p_1)
                                   (let ((a_2 (cdr p_1)))
                                     (let ((p_2 (unwrap a_2)))
                                       (if (pair? p_2)
                                         (let ((a_3 (cdr p_2)))
                                           (let ((p_3 (unwrap a_3)))
                                             (if (pair? p_3)
                                               (let ((a_4 (cdr p_3)))
                                                 (let ((p_4 (unwrap a_4)))
                                                   (if (pair? p_4)
                                                     (let ((a_5 (cdr p_4)))
                                                       (let ((p_5
                                                              (unwrap a_5)))
                                                         (if (pair? p_5)
                                                           (let ((a_6
                                                                  (cdr p_5)))
                                                             (let ((app_0
                                                                    (unwrap
                                                                     '())))
                                                               (eq?
                                                                app_0
                                                                (unwrap a_6))))
                                                           #f)))
                                                     #f)))
                                               #f)))
                                         #f)))
                                   #f)))
                           (let ((a_1 (cdr p_0)))
                             (let ((p_1 (unwrap a_1)))
                               (if (pair? p_1)
                                 (let ((a_2 (cdr p_1)))
                                   (let ((app_0 (unwrap '())))
                                     (eq? app_0 (unwrap a_2))))
                                 #f)))
                           #f)
                         #f)))
                   #f)
               (call-with-values
                (lambda ()
                  (let ((d_0 (cdr (unwrap v5_0))))
                    (let ((p_0 (unwrap d_0)))
                      (call-with-values
                       (lambda ()
                         (let ((a_0 (car p_0)))
                           (let ((p_1 (unwrap a_0)))
                             (let ((struct:s_0 (let ((a_1 (car p_1))) a_1)))
                               (call-with-values
                                (lambda ()
                                  (let ((d_1 (cdr p_1)))
                                    (let ((p_2 (unwrap d_1)))
                                      (let ((make-s_0
                                             (let ((a_1 (car p_2))) a_1)))
                                        (call-with-values
                                         (lambda ()
                                           (let ((d_2 (cdr p_2)))
                                             (let ((p_3 (unwrap d_2)))
                                               (let ((s?_0
                                                      (let ((a_1 (car p_3)))
                                                        a_1)))
                                                 (call-with-values
                                                  (lambda ()
                                                    (let ((d_3 (cdr p_3)))
                                                      (let ((p_4 (unwrap d_3)))
                                                        (let ((s-ref_0
                                                               (let ((a_1
                                                                      (car
                                                                       p_4)))
                                                                 a_1)))
                                                          (let ((s-set!_0
                                                                 (let ((d_4
                                                                        (cdr
                                                                         p_4)))
                                                                   (let ((a_1
                                                                          (car
                                                                           (unwrap
                                                                            d_4))))
                                                                     a_1))))
                                                            (let ((s-ref_1
                                                                   s-ref_0))
                                                              (values
                                                               s-ref_1
                                                               s-set!_0)))))))
                                                  (case-lambda
                                                   ((s-ref_0 s-set!_0)
                                                    (let ((s?_1 s?_0))
                                                      (values
                                                       s?_1
                                                       s-ref_0
                                                       s-set!_0)))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args))))))))
                                         (case-lambda
                                          ((s?_0 s-ref_0 s-set!_0)
                                           (let ((make-s_1 make-s_0))
                                             (values
                                              make-s_1
                                              s?_0
                                              s-ref_0
                                              s-set!_0)))
                                          (args
                                           (raise-binding-result-arity-error
                                            3
                                            args))))))))
                                (case-lambda
                                 ((make-s_0 s?_0 s-ref_0 s-set!_0)
                                  (let ((struct:s_1 struct:s_0))
                                    (values
                                     struct:s_1
                                     make-s_0
                                     s?_0
                                     s-ref_0
                                     s-set!_0)))
                                 (args
                                  (raise-binding-result-arity-error
                                   4
                                   args))))))))
                       (case-lambda
                        ((struct:s_0 make-s_0 s?_0 s-ref_0 s-set!_0)
                         (let ((rhs_0
                                (let ((d_1 (cdr p_0)))
                                  (let ((a_0 (car (unwrap d_1)))) a_0))))
                           (let ((struct:s_1 struct:s_0)
                                 (make-s_1 make-s_0)
                                 (s?_1 s?_0)
                                 (s-ref_1 s-ref_0)
                                 (s-set!_1 s-set!_0))
                             (values
                              struct:s_1
                              make-s_1
                              s?_1
                              s-ref_1
                              s-set!_1
                              rhs_0))))
                        (args (raise-binding-result-arity-error 5 args)))))))
                (case-lambda
                 ((struct:s_0 make-s_0 s?_0 s-ref_0 s-set!_0 rhs_0)
                  (let ((info_0
                         (make-struct-type-info
                          rhs_0
                          prim-knowns6_0
                          knowns7_0
                          imports8_0
                          mutated9_0)))
                    (if info_0
                      (let ((type_0
                             (string->uninterned-symbol
                              (symbol->string (unwrap make-s_0)))))
                        (values
                         (let ((knowns_0
                                (let ((app_0 (unwrap make-s_0)))
                                  (hash-set
                                   knowns7_0
                                   app_0
                                   (if (struct-type-info-pure-constructor?
                                        info_0)
                                     (known-constructor
                                      (arithmetic-shift
                                       1
                                       (struct-type-info-field-count info_0))
                                      type_0)
                                     a-known-constant)))))
                           (let ((knowns_1
                                  (let ((app_0 (unwrap s?_0)))
                                    (hash-set
                                     knowns_0
                                     app_0
                                     (known-struct-predicate
                                      2
                                      type_0
                                      struct:s_0
                                      (struct-type-info-authentic? info_0))))))
                             (let ((app_0 (unwrap struct:s_0)))
                               (hash-set
                                knowns_1
                                app_0
                                (let ((app_1
                                       (struct-type-info-field-count info_0)))
                                  (known-struct-type
                                   type_0
                                   app_1
                                   (struct-type-info-pure-constructor?
                                    info_0)))))))
                         info_0))
                      (values knowns7_0 #f))))
                 (args (raise-binding-result-arity-error 6 args))))
               (if (if (eq? 'define-values hd_0)
                     (let ((a_0 (cdr (unwrap v5_0))))
                       (let ((p_0 (unwrap a_0)))
                         (if (pair? p_0)
                           (if (let ((a_1 (car p_0)))
                                 (let ((p_1 (unwrap a_1)))
                                   (if (pair? p_1)
                                     (let ((a_2 (cdr p_1)))
                                       (let ((p_2 (unwrap a_2)))
                                         (if (pair? p_2)
                                           (let ((a_3 (cdr p_2)))
                                             (let ((p_3 (unwrap a_3)))
                                               (if (pair? p_3)
                                                 (let ((a_4 (cdr p_3)))
                                                   (let ((app_0 (unwrap '())))
                                                     (eq? app_0 (unwrap a_4))))
                                                 #f)))
                                           #f)))
                                     #f)))
                             (let ((a_1 (cdr p_0)))
                               (let ((p_1 (unwrap a_1)))
                                 (if (pair? p_1)
                                   (if (let ((a_2 (car p_1)))
                                         (let ((p_2 (unwrap a_2)))
                                           (if (pair? p_2)
                                             (if (let ((a_3 (car p_2)))
                                                   (let ((app_0
                                                          (unwrap
                                                           'make-struct-type-property)))
                                                     (eq? app_0 (unwrap a_3))))
                                               (let ((a_3 (cdr p_2)))
                                                 (let ((p_3 (unwrap a_3)))
                                                   (if (pair? p_3) #t #f)))
                                               #f)
                                             #f)))
                                     (let ((a_2 (cdr p_1)))
                                       (let ((app_0 (unwrap '())))
                                         (eq? app_0 (unwrap a_2))))
                                     #f)
                                   #f)))
                             #f)
                           #f)))
                     #f)
                 (call-with-values
                  (lambda ()
                    (let ((d_0 (cdr (unwrap v5_0))))
                      (let ((p_0 (unwrap d_0)))
                        (call-with-values
                         (lambda ()
                           (let ((a_0 (car p_0)))
                             (let ((p_1 (unwrap a_0)))
                               (let ((prop:s_0 (let ((a_1 (car p_1))) a_1)))
                                 (call-with-values
                                  (lambda ()
                                    (let ((d_1 (cdr p_1)))
                                      (let ((p_2 (unwrap d_1)))
                                        (let ((s?_0
                                               (let ((a_1 (car p_2))) a_1)))
                                          (let ((s-ref_0
                                                 (let ((d_2 (cdr p_2)))
                                                   (let ((a_1
                                                          (car (unwrap d_2))))
                                                     a_1))))
                                            (let ((s?_1 s?_0))
                                              (values s?_1 s-ref_0)))))))
                                  (case-lambda
                                   ((s?_0 s-ref_0)
                                    (let ((prop:s_1 prop:s_0))
                                      (values prop:s_1 s?_0 s-ref_0)))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args))))))))
                         (case-lambda
                          ((prop:s_0 s?_0 s-ref_0)
                           (let ((rest_0
                                  (let ((d_1 (cdr p_0)))
                                    (let ((a_0 (car (unwrap d_1))))
                                      (let ((d_2 (cdr (unwrap a_0))))
                                        (let ((d_3 (cdr (unwrap d_2))))
                                          d_3))))))
                             (let ((prop:s_1 prop:s_0)
                                   (s?_1 s?_0)
                                   (s-ref_1 s-ref_0))
                               (values prop:s_1 s?_1 s-ref_1 rest_0))))
                          (args (raise-binding-result-arity-error 3 args)))))))
                  (case-lambda
                   ((prop:s_0 s?_0 s-ref_0 rest_0)
                    (let ((type_0
                           (string->uninterned-symbol
                            (symbol->string (unwrap prop:s_0)))))
                      (values
                       (let ((knowns_0
                              (hash-set
                               knowns7_0
                               (unwrap s-ref_0)
                               (known-accessor 2 type_0))))
                         (let ((knowns_1
                                (hash-set
                                 knowns_0
                                 (unwrap s?_0)
                                 (known-predicate 2 type_0))))
                           (if (let ((or-part_0 (null? (unwrap rest_0))))
                                 (if or-part_0
                                   or-part_0
                                   (if (not (wrap-car rest_0))
                                     (null? (unwrap (wrap-cdr rest_0)))
                                     #f)))
                             (hash-set
                              knowns_1
                              (unwrap prop:s_0)
                              (known-struct-type-property/immediate-guard))
                             knowns_1)))
                       #f)))
                   (args (raise-binding-result-arity-error 4 args))))
                 (if (if (eq? 'define-values hd_0)
                       (let ((a_0 (cdr (unwrap v5_0))))
                         (let ((p_0 (unwrap a_0)))
                           (if (pair? p_0)
                             (let ((a_1 (cdr p_0)))
                               (let ((p_1 (unwrap a_1)))
                                 (if (pair? p_1)
                                   (let ((a_2 (cdr p_1)))
                                     (let ((app_0 (unwrap '())))
                                       (eq? app_0 (unwrap a_2))))
                                   #f)))
                             #f)))
                       #f)
                   (call-with-values
                    (lambda ()
                      (let ((d_0 (cdr (unwrap v5_0))))
                        (let ((p_0 (unwrap d_0)))
                          (let ((ids_0 (let ((a_0 (car p_0))) a_0)))
                            (let ((rhs_0
                                   (let ((d_1 (cdr p_0)))
                                     (let ((a_0 (car (unwrap d_1)))) a_0))))
                              (let ((ids_1 ids_0)) (values ids_1 rhs_0)))))))
                    (case-lambda
                     ((ids_0 rhs_0)
                      (letrec*
                       ((loop_0
                         (|#%name|
                          loop
                          (lambda (rhs_1)
                            (begin
                              (let ((hd_1
                                     (let ((p_0 (unwrap rhs_1)))
                                       (if (pair? p_0)
                                         (unwrap (car p_0))
                                         #f))))
                                (if (if (eq? 'let-values hd_1)
                                      (let ((a_0 (cdr (unwrap rhs_1))))
                                        (let ((p_0 (unwrap a_0)))
                                          (if (pair? p_0)
                                            (if (let ((a_1 (car p_0)))
                                                  (let ((app_0 (unwrap '())))
                                                    (eq? app_0 (unwrap a_1))))
                                              (let ((a_1 (cdr p_0)))
                                                (let ((p_1 (unwrap a_1)))
                                                  (if (pair? p_1)
                                                    (let ((a_2 (cdr p_1)))
                                                      (let ((app_0
                                                             (unwrap '())))
                                                        (eq?
                                                         app_0
                                                         (unwrap a_2))))
                                                    #f)))
                                              #f)
                                            #f)))
                                      #f)
                                  (let ((rhs_2
                                         (let ((d_0 (cdr (unwrap rhs_1))))
                                           (let ((d_1 (cdr (unwrap d_0))))
                                             (let ((a_0 (car (unwrap d_1))))
                                               a_0)))))
                                    (loop_0 rhs_2))
                                  (if (if (eq? 'values hd_1)
                                        (let ((a_0 (cdr (unwrap rhs_1))))
                                          (wrap-list? a_0))
                                        #f)
                                    (let ((rhss_0
                                           (let ((d_0 (cdr (unwrap rhs_1))))
                                             (unwrap-list d_0))))
                                      (if (let ((app_0 (length ids_0)))
                                            (equal? app_0 (length rhss_0)))
                                        (values
                                         (begin
                                           (letrec*
                                            ((for-loop_0
                                              (|#%name|
                                               for-loop
                                               (lambda (knowns_0 lst_0 lst_1)
                                                 (begin
                                                   (if (if (pair? lst_0)
                                                         (pair? lst_1)
                                                         #f)
                                                     (let ((id_0
                                                            (unsafe-car
                                                             lst_0)))
                                                       (let ((rest_0
                                                              (unsafe-cdr
                                                               lst_0)))
                                                         (let ((rhs_2
                                                                (unsafe-car
                                                                 lst_1)))
                                                           (let ((rest_1
                                                                  (unsafe-cdr
                                                                   lst_1)))
                                                             (let ((knowns_1
                                                                    (let ((knowns_1
                                                                           (call-with-values
                                                                            (lambda ()
                                                                              (let ((temp24_0
                                                                                     (list
                                                                                      'define-values
                                                                                      (list
                                                                                       id_0)
                                                                                      rhs_2)))
                                                                                (find-definitions.1
                                                                                 optimize?2_0
                                                                                 hash2610
                                                                                 temp24_0
                                                                                 prim-knowns6_0
                                                                                 knowns_0
                                                                                 imports8_0
                                                                                 mutated9_0
                                                                                 simples10_0
                                                                                 unsafe-mode?11_0)))
                                                                            (case-lambda
                                                                             ((new-knowns_0
                                                                               info_0)
                                                                              new-knowns_0)
                                                                             (args
                                                                              (raise-binding-result-arity-error
                                                                               2
                                                                               args))))))
                                                                      (values
                                                                       knowns_1))))
                                                               (for-loop_0
                                                                knowns_1
                                                                rest_0
                                                                rest_1))))))
                                                     knowns_0))))))
                                            (for-loop_0
                                             knowns7_0
                                             ids_0
                                             rhss_0)))
                                         #f)
                                        (values knowns7_0 #f)))
                                    (values knowns7_0 #f)))))))))
                       (loop_0 rhs_0)))
                     (args (raise-binding-result-arity-error 2 args))))
                   (values knowns7_0 #f)))))))))))
(define struct-convert
  (lambda (form_0
           prim-knowns_0
           knowns_0
           imports_0
           mutated_0
           schemify_0
           no-prompt?_0)
    (let ((hd_0
           (let ((p_0 (unwrap form_0)))
             (if (pair? p_0) (unwrap (car p_0)) #f))))
      (if (if (eq? 'define-values hd_0)
            (let ((a_0 (cdr (unwrap form_0))))
              (let ((p_0 (unwrap a_0)))
                (if (pair? p_0)
                  (if (let ((a_1 (car p_0)))
                        (let ((p_1 (unwrap a_1)))
                          (if (pair? p_1)
                            (let ((a_2 (cdr p_1)))
                              (let ((p_2 (unwrap a_2)))
                                (if (pair? p_2)
                                  (let ((a_3 (cdr p_2)))
                                    (let ((p_3 (unwrap a_3)))
                                      (if (pair? p_3)
                                        (let ((a_4 (cdr p_3)))
                                          (wrap-list? a_4))
                                        #f)))
                                  #f)))
                            #f)))
                    (let ((a_1 (cdr p_0)))
                      (let ((p_1 (unwrap a_1)))
                        (if (pair? p_1)
                          (if (let ((a_2 (car p_1)))
                                (let ((p_2 (unwrap a_2)))
                                  (if (pair? p_2)
                                    (if (let ((a_3 (car p_2)))
                                          (let ((app_0 (unwrap 'let-values)))
                                            (eq? app_0 (unwrap a_3))))
                                      (let ((a_3 (cdr p_2)))
                                        (let ((p_3 (unwrap a_3)))
                                          (if (pair? p_3)
                                            (if (let ((a_4 (car p_3)))
                                                  (let ((p_4 (unwrap a_4)))
                                                    (if (pair? p_4)
                                                      (if (let ((a_5
                                                                 (car p_4)))
                                                            (let ((p_5
                                                                   (unwrap
                                                                    a_5)))
                                                              (if (pair? p_5)
                                                                (if (let ((a_6
                                                                           (car
                                                                            p_5)))
                                                                      (let ((p_6
                                                                             (unwrap
                                                                              a_6)))
                                                                        (if (pair?
                                                                             p_6)
                                                                          (let ((a_7
                                                                                 (cdr
                                                                                  p_6)))
                                                                            (let ((p_7
                                                                                   (unwrap
                                                                                    a_7)))
                                                                              (if (pair?
                                                                                   p_7)
                                                                                (let ((a_8
                                                                                       (cdr
                                                                                        p_7)))
                                                                                  (let ((p_8
                                                                                         (unwrap
                                                                                          a_8)))
                                                                                    (if (pair?
                                                                                         p_8)
                                                                                      (let ((a_9
                                                                                             (cdr
                                                                                              p_8)))
                                                                                        (let ((p_9
                                                                                               (unwrap
                                                                                                a_9)))
                                                                                          (if (pair?
                                                                                               p_9)
                                                                                            (let ((a_10
                                                                                                   (cdr
                                                                                                    p_9)))
                                                                                              (let ((p_10
                                                                                                     (unwrap
                                                                                                      a_10)))
                                                                                                (if (pair?
                                                                                                     p_10)
                                                                                                  (let ((a_11
                                                                                                         (cdr
                                                                                                          p_10)))
                                                                                                    (let ((app_0
                                                                                                           (unwrap
                                                                                                            '())))
                                                                                                      (eq?
                                                                                                       app_0
                                                                                                       (unwrap
                                                                                                        a_11))))
                                                                                                  #f)))
                                                                                            #f)))
                                                                                      #f)))
                                                                                #f)))
                                                                          #f)))
                                                                  (let ((a_6
                                                                         (cdr
                                                                          p_5)))
                                                                    (let ((p_6
                                                                           (unwrap
                                                                            a_6)))
                                                                      (if (pair?
                                                                           p_6)
                                                                        (let ((a_7
                                                                               (cdr
                                                                                p_6)))
                                                                          (let ((app_0
                                                                                 (unwrap
                                                                                  '())))
                                                                            (eq?
                                                                             app_0
                                                                             (unwrap
                                                                              a_7))))
                                                                        #f)))
                                                                  #f)
                                                                #f)))
                                                        (let ((a_5 (cdr p_4)))
                                                          (let ((app_0
                                                                 (unwrap '())))
                                                            (eq?
                                                             app_0
                                                             (unwrap a_5))))
                                                        #f)
                                                      #f)))
                                              (let ((a_4 (cdr p_3)))
                                                (let ((p_4 (unwrap a_4)))
                                                  (if (pair? p_4)
                                                    (if (let ((a_5 (car p_4)))
                                                          (let ((p_5
                                                                 (unwrap a_5)))
                                                            (if (pair? p_5)
                                                              (if (let ((a_6
                                                                         (car
                                                                          p_5)))
                                                                    (let ((app_0
                                                                           (unwrap
                                                                            'values)))
                                                                      (eq?
                                                                       app_0
                                                                       (unwrap
                                                                        a_6))))
                                                                (let ((a_6
                                                                       (cdr
                                                                        p_5)))
                                                                  (let ((p_6
                                                                         (unwrap
                                                                          a_6)))
                                                                    (if (pair?
                                                                         p_6)
                                                                      (let ((a_7
                                                                             (cdr
                                                                              p_6)))
                                                                        (let ((p_7
                                                                               (unwrap
                                                                                a_7)))
                                                                          (if (pair?
                                                                               p_7)
                                                                            (let ((a_8
                                                                                   (cdr
                                                                                    p_7)))
                                                                              (let ((p_8
                                                                                     (unwrap
                                                                                      a_8)))
                                                                                (if (pair?
                                                                                     p_8)
                                                                                  (let ((a_9
                                                                                         (cdr
                                                                                          p_8)))
                                                                                    (wrap-list?
                                                                                     a_9))
                                                                                  #f)))
                                                                            #f)))
                                                                      #f)))
                                                                #f)
                                                              #f)))
                                                      (let ((a_5 (cdr p_4)))
                                                        (let ((app_0
                                                               (unwrap '())))
                                                          (eq?
                                                           app_0
                                                           (unwrap a_5))))
                                                      #f)
                                                    #f)))
                                              #f)
                                            #f)))
                                      #f)
                                    #f)))
                            (let ((a_2 (cdr p_1)))
                              (let ((app_0 (unwrap '())))
                                (eq? app_0 (unwrap a_2))))
                            #f)
                          #f)))
                    #f)
                  #f)))
            #f)
        (call-with-values
         (lambda ()
           (let ((d_0 (cdr (unwrap form_0))))
             (let ((p_0 (unwrap d_0)))
               (call-with-values
                (lambda ()
                  (let ((a_0 (car p_0)))
                    (let ((p_1 (unwrap a_0)))
                      (let ((struct:s_0 (let ((a_1 (car p_1))) a_1)))
                        (call-with-values
                         (lambda ()
                           (let ((d_1 (cdr p_1)))
                             (let ((p_2 (unwrap d_1)))
                               (let ((make-s_0 (let ((a_1 (car p_2))) a_1)))
                                 (call-with-values
                                  (lambda ()
                                    (let ((d_2 (cdr p_2)))
                                      (let ((p_3 (unwrap d_2)))
                                        (let ((s?_0
                                               (let ((a_1 (car p_3))) a_1)))
                                          (let ((acc/muts_0
                                                 (let ((d_3 (cdr p_3)))
                                                   (unwrap-list d_3))))
                                            (let ((s?_1 s?_0))
                                              (values s?_1 acc/muts_0)))))))
                                  (case-lambda
                                   ((s?_0 acc/muts_0)
                                    (let ((make-s_1 make-s_0))
                                      (values make-s_1 s?_0 acc/muts_0)))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args))))))))
                         (case-lambda
                          ((make-s_0 s?_0 acc/muts_0)
                           (let ((struct:s_1 struct:s_0))
                             (values struct:s_1 make-s_0 s?_0 acc/muts_0)))
                          (args
                           (raise-binding-result-arity-error 3 args))))))))
                (case-lambda
                 ((struct:s_0 make-s_0 s?_0 acc/muts_0)
                  (call-with-values
                   (lambda ()
                     (let ((d_1 (cdr p_0)))
                       (let ((a_0 (car (unwrap d_1))))
                         (let ((d_2 (cdr (unwrap a_0))))
                           (let ((p_1 (unwrap d_2)))
                             (call-with-values
                              (lambda ()
                                (let ((a_1 (car p_1)))
                                  (let ((a_2 (car (unwrap a_1))))
                                    (let ((p_2 (unwrap a_2)))
                                      (call-with-values
                                       (lambda ()
                                         (let ((a_3 (car p_2)))
                                           (let ((p_3 (unwrap a_3)))
                                             (let ((struct:_0
                                                    (let ((a_4 (car p_3)))
                                                      a_4)))
                                               (call-with-values
                                                (lambda ()
                                                  (let ((d_3 (cdr p_3)))
                                                    (let ((p_4 (unwrap d_3)))
                                                      (let ((make_0
                                                             (let ((a_4
                                                                    (car p_4)))
                                                               a_4)))
                                                        (call-with-values
                                                         (lambda ()
                                                           (let ((d_4
                                                                  (cdr p_4)))
                                                             (let ((p_5
                                                                    (unwrap
                                                                     d_4)))
                                                               (let ((?1_0
                                                                      (let ((a_4
                                                                             (car
                                                                              p_5)))
                                                                        a_4)))
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (let ((d_5
                                                                           (cdr
                                                                            p_5)))
                                                                      (let ((p_6
                                                                             (unwrap
                                                                              d_5)))
                                                                        (let ((-ref_0
                                                                               (let ((a_4
                                                                                      (car
                                                                                       p_6)))
                                                                                 a_4)))
                                                                          (let ((-set!_0
                                                                                 (let ((d_6
                                                                                        (cdr
                                                                                         p_6)))
                                                                                   (let ((a_4
                                                                                          (car
                                                                                           (unwrap
                                                                                            d_6))))
                                                                                     a_4))))
                                                                            (let ((-ref_1
                                                                                   -ref_0))
                                                                              (values
                                                                               -ref_1
                                                                               -set!_0)))))))
                                                                  (case-lambda
                                                                   ((-ref_0
                                                                     -set!_0)
                                                                    (let ((?1_1
                                                                           ?1_0))
                                                                      (values
                                                                       ?1_1
                                                                       -ref_0
                                                                       -set!_0)))
                                                                   (args
                                                                    (raise-binding-result-arity-error
                                                                     2
                                                                     args))))))))
                                                         (case-lambda
                                                          ((?1_0
                                                            -ref_0
                                                            -set!_0)
                                                           (let ((make_1
                                                                  make_0))
                                                             (values
                                                              make_1
                                                              ?1_0
                                                              -ref_0
                                                              -set!_0)))
                                                          (args
                                                           (raise-binding-result-arity-error
                                                            3
                                                            args))))))))
                                                (case-lambda
                                                 ((make_0 ?1_0 -ref_0 -set!_0)
                                                  (let ((struct:_1 struct:_0))
                                                    (values
                                                     struct:_1
                                                     make_0
                                                     ?1_0
                                                     -ref_0
                                                     -set!_0)))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   4
                                                   args))))))))
                                       (case-lambda
                                        ((struct:_0 make_0 ?1_0 -ref_0 -set!_0)
                                         (let ((mk_0
                                                (let ((d_3 (cdr p_2)))
                                                  (let ((a_3
                                                         (car (unwrap d_3))))
                                                    a_3))))
                                           (let ((struct:_1 struct:_0)
                                                 (make_1 make_0)
                                                 (?1_1 ?1_0)
                                                 (-ref_1 -ref_0)
                                                 (-set!_1 -set!_0))
                                             (values
                                              struct:_1
                                              make_1
                                              ?1_1
                                              -ref_1
                                              -set!_1
                                              mk_0))))
                                        (args
                                         (raise-binding-result-arity-error
                                          5
                                          args))))))))
                              (case-lambda
                               ((struct:_0 make_0 ?1_0 -ref_0 -set!_0 mk_0)
                                (call-with-values
                                 (lambda ()
                                   (let ((d_3 (cdr p_1)))
                                     (let ((a_1 (car (unwrap d_3))))
                                       (let ((d_4 (cdr (unwrap a_1))))
                                         (let ((p_2 (unwrap d_4)))
                                           (let ((struct:2_0
                                                  (let ((a_2 (car p_2))) a_2)))
                                             (call-with-values
                                              (lambda ()
                                                (let ((d_5 (cdr p_2)))
                                                  (let ((p_3 (unwrap d_5)))
                                                    (let ((make2_0
                                                           (let ((a_2
                                                                  (car p_3)))
                                                             a_2)))
                                                      (call-with-values
                                                       (lambda ()
                                                         (let ((d_6 (cdr p_3)))
                                                           (let ((p_4
                                                                  (unwrap
                                                                   d_6)))
                                                             (let ((?2_0
                                                                    (let ((a_2
                                                                           (car
                                                                            p_4)))
                                                                      a_2)))
                                                               (let ((make-acc/muts_0
                                                                      (let ((d_7
                                                                             (cdr
                                                                              p_4)))
                                                                        (unwrap-list
                                                                         d_7))))
                                                                 (let ((?2_1
                                                                        ?2_0))
                                                                   (values
                                                                    ?2_1
                                                                    make-acc/muts_0)))))))
                                                       (case-lambda
                                                        ((?2_0 make-acc/muts_0)
                                                         (let ((make2_1
                                                                make2_0))
                                                           (values
                                                            make2_1
                                                            ?2_0
                                                            make-acc/muts_0)))
                                                        (args
                                                         (raise-binding-result-arity-error
                                                          2
                                                          args))))))))
                                              (case-lambda
                                               ((make2_0 ?2_0 make-acc/muts_0)
                                                (let ((struct:2_1 struct:2_0))
                                                  (values
                                                   struct:2_1
                                                   make2_0
                                                   ?2_0
                                                   make-acc/muts_0)))
                                               (args
                                                (raise-binding-result-arity-error
                                                 3
                                                 args))))))))))
                                 (case-lambda
                                  ((struct:2_0 make2_0 ?2_0 make-acc/muts_0)
                                   (let ((struct:_1 struct:_0)
                                         (make_1 make_0)
                                         (?1_1 ?1_0)
                                         (-ref_1 -ref_0)
                                         (-set!_1 -set!_0)
                                         (mk_1 mk_0))
                                     (values
                                      struct:_1
                                      make_1
                                      ?1_1
                                      -ref_1
                                      -set!_1
                                      mk_1
                                      struct:2_0
                                      make2_0
                                      ?2_0
                                      make-acc/muts_0)))
                                  (args
                                   (raise-binding-result-arity-error
                                    4
                                    args)))))
                               (args
                                (raise-binding-result-arity-error
                                 6
                                 args)))))))))
                   (case-lambda
                    ((struct:_0
                      make_0
                      ?1_0
                      -ref_0
                      -set!_0
                      mk_0
                      struct:2_0
                      make2_0
                      ?2_0
                      make-acc/muts_0)
                     (let ((struct:s_1 struct:s_0)
                           (make-s_1 make-s_0)
                           (s?_1 s?_0)
                           (acc/muts_1 acc/muts_0))
                       (values
                        struct:s_1
                        make-s_1
                        s?_1
                        acc/muts_1
                        struct:_0
                        make_0
                        ?1_0
                        -ref_0
                        -set!_0
                        mk_0
                        struct:2_0
                        make2_0
                        ?2_0
                        make-acc/muts_0)))
                    (args (raise-binding-result-arity-error 10 args)))))
                 (args (raise-binding-result-arity-error 4 args)))))))
         (case-lambda
          ((struct:s_0
            make-s_0
            s?_0
            acc/muts_0
            struct:_0
            make_0
            ?1_0
            -ref_0
            -set!_0
            mk_0
            struct:2_0
            make2_0
            ?2_0
            make-acc/muts_0)
           (let ((sti_0
                  (if (let ((app_0 (unwrap struct:_0)))
                        (eq? app_0 (unwrap struct:2_0)))
                    (if (let ((app_0 (unwrap make_0)))
                          (eq? app_0 (unwrap make2_0)))
                      (if (let ((app_0 (unwrap ?1_0)))
                            (eq? app_0 (unwrap ?2_0)))
                        (if (begin
                              (letrec*
                               ((for-loop_0
                                 (|#%name|
                                  for-loop
                                  (lambda (result_0 lst_0 lst_1)
                                    (begin
                                      (if (if (pair? lst_0) (pair? lst_1) #f)
                                        (let ((acc/mut_0 (unsafe-car lst_0)))
                                          (let ((rest_0 (unsafe-cdr lst_0)))
                                            (let ((make-acc/mut_0
                                                   (unsafe-car lst_1)))
                                              (let ((rest_1
                                                     (unsafe-cdr lst_1)))
                                                (let ((result_1
                                                       (let ((result_1
                                                              (let ((hd_1
                                                                     (let ((p_0
                                                                            (unwrap
                                                                             make-acc/mut_0)))
                                                                       (if (pair?
                                                                            p_0)
                                                                         (unwrap
                                                                          (car
                                                                           p_0))
                                                                         #f))))
                                                                (if (if (eq?
                                                                         'make-struct-field-accessor
                                                                         hd_1)
                                                                      (let ((a_0
                                                                             (cdr
                                                                              (unwrap
                                                                               make-acc/mut_0))))
                                                                        (let ((p_0
                                                                               (unwrap
                                                                                a_0)))
                                                                          (if (pair?
                                                                               p_0)
                                                                            (let ((a_1
                                                                                   (cdr
                                                                                    p_0)))
                                                                              (let ((p_1
                                                                                     (unwrap
                                                                                      a_1)))
                                                                                (if (pair?
                                                                                     p_1)
                                                                                  (let ((a_2
                                                                                         (cdr
                                                                                          p_1)))
                                                                                    (let ((p_2
                                                                                           (unwrap
                                                                                            a_2)))
                                                                                      (if (pair?
                                                                                           p_2)
                                                                                        (if (let ((a_3
                                                                                                   (car
                                                                                                    p_2)))
                                                                                              (let ((p_3
                                                                                                     (unwrap
                                                                                                      a_3)))
                                                                                                (if (pair?
                                                                                                     p_3)
                                                                                                  (if (let ((a_4
                                                                                                             (car
                                                                                                              p_3)))
                                                                                                        (let ((app_0
                                                                                                               (unwrap
                                                                                                                'quote)))
                                                                                                          (eq?
                                                                                                           app_0
                                                                                                           (unwrap
                                                                                                            a_4))))
                                                                                                    (let ((a_4
                                                                                                           (cdr
                                                                                                            p_3)))
                                                                                                      (let ((p_4
                                                                                                             (unwrap
                                                                                                              a_4)))
                                                                                                        (if (pair?
                                                                                                             p_4)
                                                                                                          (let ((a_5
                                                                                                                 (cdr
                                                                                                                  p_4)))
                                                                                                            (let ((app_0
                                                                                                                   (unwrap
                                                                                                                    '())))
                                                                                                              (eq?
                                                                                                               app_0
                                                                                                               (unwrap
                                                                                                                a_5))))
                                                                                                          #f)))
                                                                                                    #f)
                                                                                                  #f)))
                                                                                          (let ((a_3
                                                                                                 (cdr
                                                                                                  p_2)))
                                                                                            (let ((app_0
                                                                                                   (unwrap
                                                                                                    '())))
                                                                                              (eq?
                                                                                               app_0
                                                                                               (unwrap
                                                                                                a_3))))
                                                                                          #f)
                                                                                        #f)))
                                                                                  #f)))
                                                                            #f)))
                                                                      #f)
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (let ((d_0
                                                                            (cdr
                                                                             (unwrap
                                                                              make-acc/mut_0))))
                                                                       (let ((p_0
                                                                              (unwrap
                                                                               d_0)))
                                                                         (let ((ref-id_0
                                                                                (let ((a_0
                                                                                       (car
                                                                                        p_0)))
                                                                                  a_0)))
                                                                           (call-with-values
                                                                            (lambda ()
                                                                              (let ((d_1
                                                                                     (cdr
                                                                                      p_0)))
                                                                                (let ((p_1
                                                                                       (unwrap
                                                                                        d_1)))
                                                                                  (let ((pos_0
                                                                                         (let ((a_0
                                                                                                (car
                                                                                                 p_1)))
                                                                                           a_0)))
                                                                                    (let ((field-name_0
                                                                                           (let ((d_2
                                                                                                  (cdr
                                                                                                   p_1)))
                                                                                             (let ((a_0
                                                                                                    (car
                                                                                                     (unwrap
                                                                                                      d_2))))
                                                                                               (let ((d_3
                                                                                                      (cdr
                                                                                                       (unwrap
                                                                                                        a_0))))
                                                                                                 (let ((a_1
                                                                                                        (car
                                                                                                         (unwrap
                                                                                                          d_3))))
                                                                                                   a_1))))))
                                                                                      (let ((pos_1
                                                                                             pos_0))
                                                                                        (values
                                                                                         pos_1
                                                                                         field-name_0)))))))
                                                                            (case-lambda
                                                                             ((pos_0
                                                                               field-name_0)
                                                                              (let ((ref-id_1
                                                                                     ref-id_0))
                                                                                (values
                                                                                 ref-id_1
                                                                                 pos_0
                                                                                 field-name_0)))
                                                                             (args
                                                                              (raise-binding-result-arity-error
                                                                               2
                                                                               args))))))))
                                                                   (case-lambda
                                                                    ((ref-id_0
                                                                      pos_0
                                                                      field-name_0)
                                                                     (if (let ((app_0
                                                                                (unwrap
                                                                                 ref-id_0)))
                                                                           (eq?
                                                                            app_0
                                                                            (unwrap
                                                                             -ref_0)))
                                                                       (if (symbol?
                                                                            field-name_0)
                                                                         (exact-nonnegative-integer?
                                                                          pos_0)
                                                                         #f)
                                                                       #f))
                                                                    (args
                                                                     (raise-binding-result-arity-error
                                                                      3
                                                                      args))))
                                                                  (if (if (eq?
                                                                           'make-struct-field-mutator
                                                                           hd_1)
                                                                        (let ((a_0
                                                                               (cdr
                                                                                (unwrap
                                                                                 make-acc/mut_0))))
                                                                          (let ((p_0
                                                                                 (unwrap
                                                                                  a_0)))
                                                                            (if (pair?
                                                                                 p_0)
                                                                              (let ((a_1
                                                                                     (cdr
                                                                                      p_0)))
                                                                                (let ((p_1
                                                                                       (unwrap
                                                                                        a_1)))
                                                                                  (if (pair?
                                                                                       p_1)
                                                                                    (let ((a_2
                                                                                           (cdr
                                                                                            p_1)))
                                                                                      (let ((p_2
                                                                                             (unwrap
                                                                                              a_2)))
                                                                                        (if (pair?
                                                                                             p_2)
                                                                                          (if (let ((a_3
                                                                                                     (car
                                                                                                      p_2)))
                                                                                                (let ((p_3
                                                                                                       (unwrap
                                                                                                        a_3)))
                                                                                                  (if (pair?
                                                                                                       p_3)
                                                                                                    (if (let ((a_4
                                                                                                               (car
                                                                                                                p_3)))
                                                                                                          (let ((app_0
                                                                                                                 (unwrap
                                                                                                                  'quote)))
                                                                                                            (eq?
                                                                                                             app_0
                                                                                                             (unwrap
                                                                                                              a_4))))
                                                                                                      (let ((a_4
                                                                                                             (cdr
                                                                                                              p_3)))
                                                                                                        (let ((p_4
                                                                                                               (unwrap
                                                                                                                a_4)))
                                                                                                          (if (pair?
                                                                                                               p_4)
                                                                                                            (let ((a_5
                                                                                                                   (cdr
                                                                                                                    p_4)))
                                                                                                              (let ((app_0
                                                                                                                     (unwrap
                                                                                                                      '())))
                                                                                                                (eq?
                                                                                                                 app_0
                                                                                                                 (unwrap
                                                                                                                  a_5))))
                                                                                                            #f)))
                                                                                                      #f)
                                                                                                    #f)))
                                                                                            (let ((a_3
                                                                                                   (cdr
                                                                                                    p_2)))
                                                                                              (let ((app_0
                                                                                                     (unwrap
                                                                                                      '())))
                                                                                                (eq?
                                                                                                 app_0
                                                                                                 (unwrap
                                                                                                  a_3))))
                                                                                            #f)
                                                                                          #f)))
                                                                                    #f)))
                                                                              #f)))
                                                                        #f)
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (let ((d_0
                                                                              (cdr
                                                                               (unwrap
                                                                                make-acc/mut_0))))
                                                                         (let ((p_0
                                                                                (unwrap
                                                                                 d_0)))
                                                                           (let ((set-id_0
                                                                                  (let ((a_0
                                                                                         (car
                                                                                          p_0)))
                                                                                    a_0)))
                                                                             (call-with-values
                                                                              (lambda ()
                                                                                (let ((d_1
                                                                                       (cdr
                                                                                        p_0)))
                                                                                  (let ((p_1
                                                                                         (unwrap
                                                                                          d_1)))
                                                                                    (let ((pos_0
                                                                                           (let ((a_0
                                                                                                  (car
                                                                                                   p_1)))
                                                                                             a_0)))
                                                                                      (let ((field-name_0
                                                                                             (let ((d_2
                                                                                                    (cdr
                                                                                                     p_1)))
                                                                                               (let ((a_0
                                                                                                      (car
                                                                                                       (unwrap
                                                                                                        d_2))))
                                                                                                 (let ((d_3
                                                                                                        (cdr
                                                                                                         (unwrap
                                                                                                          a_0))))
                                                                                                   (let ((a_1
                                                                                                          (car
                                                                                                           (unwrap
                                                                                                            d_3))))
                                                                                                     a_1))))))
                                                                                        (let ((pos_1
                                                                                               pos_0))
                                                                                          (values
                                                                                           pos_1
                                                                                           field-name_0)))))))
                                                                              (case-lambda
                                                                               ((pos_0
                                                                                 field-name_0)
                                                                                (let ((set-id_1
                                                                                       set-id_0))
                                                                                  (values
                                                                                   set-id_1
                                                                                   pos_0
                                                                                   field-name_0)))
                                                                               (args
                                                                                (raise-binding-result-arity-error
                                                                                 2
                                                                                 args))))))))
                                                                     (case-lambda
                                                                      ((set-id_0
                                                                        pos_0
                                                                        field-name_0)
                                                                       (if (let ((app_0
                                                                                  (unwrap
                                                                                   set-id_0)))
                                                                             (eq?
                                                                              app_0
                                                                              (unwrap
                                                                               -set!_0)))
                                                                         (if (symbol?
                                                                              field-name_0)
                                                                           (exact-nonnegative-integer?
                                                                            pos_0)
                                                                           #f)
                                                                         #f))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        3
                                                                        args))))
                                                                    #f)))))
                                                         (values result_1))))
                                                  (if (if (not
                                                           (let ((x_0
                                                                  (list
                                                                   acc/mut_0)))
                                                             (not result_1)))
                                                        (if (not
                                                             (let ((x_0
                                                                    (list
                                                                     make-acc/mut_0)))
                                                               (not result_1)))
                                                          #t
                                                          #f)
                                                        #f)
                                                    (for-loop_0
                                                     result_1
                                                     rest_0
                                                     rest_1)
                                                    result_1))))))
                                        result_0))))))
                               (for-loop_0 #t acc/muts_0 make-acc/muts_0)))
                          (make-struct-type-info
                           mk_0
                           prim-knowns_0
                           knowns_0
                           imports_0
                           mutated_0)
                          #f)
                        #f)
                      #f)
                    #f)))
             (if (if sti_0
                   (if (begin
                         (letrec*
                          ((for-loop_0
                            (|#%name|
                             for-loop
                             (lambda (result_0 lst_0)
                               (begin
                                 (if (pair? lst_0)
                                   (let ((make-acc/mut_0 (unsafe-car lst_0)))
                                     (let ((rest_0 (unsafe-cdr lst_0)))
                                       (let ((result_1
                                              (let ((result_1
                                                     (if (let ((p_0
                                                                (unwrap
                                                                 make-acc/mut_0)))
                                                           (if (pair? p_0)
                                                             (let ((a_0
                                                                    (cdr p_0)))
                                                               (let ((p_1
                                                                      (unwrap
                                                                       a_0)))
                                                                 (if (pair?
                                                                      p_1)
                                                                   (let ((a_1
                                                                          (cdr
                                                                           p_1)))
                                                                     (let ((p_2
                                                                            (unwrap
                                                                             a_1)))
                                                                       (if (pair?
                                                                            p_2)
                                                                         (let ((a_2
                                                                                (cdr
                                                                                 p_2)))
                                                                           (let ((p_3
                                                                                  (unwrap
                                                                                   a_2)))
                                                                             (if (pair?
                                                                                  p_3)
                                                                               (let ((a_3
                                                                                      (cdr
                                                                                       p_3)))
                                                                                 (let ((app_0
                                                                                        (unwrap
                                                                                         '())))
                                                                                   (eq?
                                                                                    app_0
                                                                                    (unwrap
                                                                                     a_3))))
                                                                               #f)))
                                                                         #f)))
                                                                   #f)))
                                                             #f))
                                                       (let ((pos_0
                                                              (let ((d_0
                                                                     (cdr
                                                                      (unwrap
                                                                       make-acc/mut_0))))
                                                                (let ((d_1
                                                                       (cdr
                                                                        (unwrap
                                                                         d_0))))
                                                                  (let ((a_0
                                                                         (car
                                                                          (unwrap
                                                                           d_1))))
                                                                    a_0)))))
                                                         (<
                                                          pos_0
                                                          (struct-type-info-immediate-field-count
                                                           sti_0)))
                                                       (error
                                                        'match
                                                        "failed ~e"
                                                        make-acc/mut_0))))
                                                (values result_1))))
                                         (if (if (not
                                                  (let ((x_0
                                                         (list
                                                          make-acc/mut_0)))
                                                    (not result_1)))
                                               #t
                                               #f)
                                           (for-loop_0 result_1 rest_0)
                                           result_1))))
                                   result_0))))))
                          (for-loop_0 #t make-acc/muts_0)))
                     (if (simple-mutated-state?
                          (hash-ref mutated_0 (unwrap struct:_0) #f))
                       (if no-prompt?_0
                         no-prompt?_0
                         (let ((or-part_0
                                (null? (struct-type-info-rest sti_0))))
                           (if or-part_0
                             or-part_0
                             (not
                              (set!ed-mutated-state?
                               (hash-ref mutated_0 (unwrap struct:s_0) #f))))))
                       #f)
                     #f)
                   #f)
               (let ((can-impersonate?_0
                      (not (struct-type-info-authentic? sti_0))))
                 (let ((raw-s?_0
                        (if can-impersonate?_0
                          (deterministic-gensym (unwrap s?_0))
                          s?_0)))
                   (let ((app_0
                          (list
                           'define
                           struct:s_0
                           (let ((app_0
                                  (list 'quote (struct-type-info-name sti_0))))
                             (let ((app_1
                                    (|#%app|
                                     schemify_0
                                     (struct-type-info-parent sti_0)
                                     knowns_0)))
                               (let ((app_2
                                      (if (not
                                           (struct-type-info-prefab-immutables
                                            sti_0))
                                        #f
                                        (let ((app_2
                                               (list
                                                'quote
                                                (struct-type-info-name
                                                 sti_0))))
                                          (let ((app_3
                                                 (|#%app|
                                                  schemify_0
                                                  (struct-type-info-parent
                                                   sti_0)
                                                  knowns_0)))
                                            (let ((app_4
                                                   (struct-type-info-immediate-field-count
                                                    sti_0)))
                                              (list
                                               'structure-type-lookup-prefab-uid
                                               app_2
                                               app_3
                                               app_4
                                               0
                                               #f
                                               (list
                                                'quote
                                                (struct-type-info-prefab-immutables
                                                 sti_0)))))))))
                                 (let ((app_3
                                        (struct-type-info-immediate-field-count
                                         sti_0)))
                                   (list
                                    'make-record-type-descriptor*
                                    app_0
                                    app_1
                                    app_2
                                    #f
                                    #f
                                    app_3
                                    (let ((n_0
                                           (struct-type-info-immediate-field-count
                                            sti_0)))
                                      (sub1 (arithmetic-shift 1 n_0)))))))))))
                     (list*
                      'begin
                      app_0
                      (let ((app_1
                             (if (null? (struct-type-info-rest sti_0))
                               null
                               (list
                                (let ((app_1 (deterministic-gensym "effect")))
                                  (list
                                   'define
                                   app_1
                                   (let ((app_2
                                          (list
                                           'quote
                                           (struct-type-info-name sti_0))))
                                     (let ((app_3
                                            (struct-type-info-immediate-field-count
                                             sti_0)))
                                       (let ((app_4
                                              (|#%app|
                                               schemify_0
                                               (struct-type-info-parent sti_0)
                                               knowns_0)))
                                         (list*
                                          'struct-type-install-properties!
                                          struct:s_0
                                          app_2
                                          app_3
                                          0
                                          app_4
                                          (schemify-body$1
                                           schemify_0
                                           knowns_0
                                           (struct-type-info-rest
                                            sti_0))))))))))))
                        (qq-append
                         app_1
                         (let ((app_2
                                (list
                                 'define
                                 make-s_0
                                 (let ((ctr_0
                                        (list
                                         'record-constructor
                                         (list*
                                          'make-record-constructor-descriptor
                                          struct:s_0
                                          '(#f #f)))))
                                   (let ((ctr-expr_0
                                          (if (struct-type-info-pure-constructor?
                                               sti_0)
                                            ctr_0
                                            (list
                                             'struct-type-constructor-add-guards
                                             ctr_0
                                             struct:s_0
                                             (list
                                              'quote
                                              (struct-type-info-name
                                               sti_0))))))
                                     (let ((name-expr_0
                                            (struct-type-info-constructor-name-expr
                                             sti_0)))
                                       (if (let ((app_2 (unwrap #f)))
                                             (eq? app_2 (unwrap name-expr_0)))
                                         (wrap-property-set
                                          ctr-expr_0
                                          'inferred-name
                                          (struct-type-info-name sti_0))
                                         (if (let ((p_0 (unwrap name-expr_0)))
                                               (if (pair? p_0)
                                                 (if (let ((a_0 (car p_0)))
                                                       (let ((app_2
                                                              (unwrap 'quote)))
                                                         (eq?
                                                          app_2
                                                          (unwrap a_0))))
                                                   (let ((a_0 (cdr p_0)))
                                                     (let ((p_1 (unwrap a_0)))
                                                       (if (pair? p_1)
                                                         (let ((a_1 (cdr p_1)))
                                                           (let ((app_2
                                                                  (unwrap
                                                                   '())))
                                                             (eq?
                                                              app_2
                                                              (unwrap a_1))))
                                                         #f)))
                                                   #f)
                                                 #f))
                                           (let ((sym_0
                                                  (let ((d_0
                                                         (cdr
                                                          (unwrap
                                                           name-expr_0))))
                                                    (let ((a_0
                                                           (car (unwrap d_0))))
                                                      a_0))))
                                             (if (symbol? sym_0)
                                               (wrap-property-set
                                                ctr-expr_0
                                                'inferred-name
                                                sym_0)
                                               (list
                                                'procedure-rename
                                                ctr-expr_0
                                                name-expr_0)))
                                           (list
                                            'procedure-rename
                                            ctr-expr_0
                                            name-expr_0)))))))))
                           (let ((app_3
                                  (list
                                   'define
                                   raw-s?_0
                                   (let ((pre_0 ""))
                                     (let ((st_0
                                            (struct-type-info-name sti_0)))
                                       (let ((sep_0 ""))
                                         (let ((post_0 "?"))
                                           (let ((proc-expr_0
                                                  (list
                                                   'record-predicate
                                                   struct:s_0)))
                                             (let ((post_1 post_0)
                                                   (sep_1 sep_0)
                                                   (st_1 st_0)
                                                   (pre_1 pre_0))
                                               (wrap-property-set
                                                proc-expr_0
                                                'inferred-name
                                                (string->symbol
                                                 (let ((app_3
                                                        (symbol->string st_1)))
                                                   (string-append
                                                    pre_1
                                                    app_3
                                                    sep_1
                                                    (symbol->string '||)
                                                    post_1)))))))))))))
                             (list*
                              app_2
                              app_3
                              (let ((app_4
                                     (if can-impersonate?_0
                                       (list
                                        (list
                                         'define
                                         s?_0
                                         (let ((pre_0 ""))
                                           (let ((st_0
                                                  (struct-type-info-name
                                                   sti_0)))
                                             (let ((sep_0 ""))
                                               (let ((post_0 "?"))
                                                 (let ((proc-expr_0
                                                        (list
                                                         'lambda
                                                         '(v)
                                                         (list
                                                          'if
                                                          (list* raw-s?_0 '(v))
                                                          #t
                                                          (list
                                                           '$value
                                                           (list*
                                                            'if
                                                            '(impersonator? v)
                                                            (list*
                                                             raw-s?_0
                                                             '((impersonator-val
                                                                v)))
                                                            '(#f)))))))
                                                   (let ((post_1 post_0)
                                                         (sep_1 sep_0)
                                                         (st_1 st_0)
                                                         (pre_1 pre_0))
                                                     (wrap-property-set
                                                      proc-expr_0
                                                      'inferred-name
                                                      (string->symbol
                                                       (let ((app_4
                                                              (symbol->string
                                                               st_1)))
                                                         (string-append
                                                          pre_1
                                                          app_4
                                                          sep_1
                                                          (symbol->string '||)
                                                          post_1))))))))))))
                                       null)))
                                (qq-append
                                 app_4
                                 (let ((app_5
                                        (reverse$1
                                         (begin
                                           (letrec*
                                            ((for-loop_0
                                              (|#%name|
                                               for-loop
                                               (lambda (fold-var_0 lst_0 lst_1)
                                                 (begin
                                                   (if (if (pair? lst_0)
                                                         (pair? lst_1)
                                                         #f)
                                                     (let ((acc/mut_0
                                                            (unsafe-car
                                                             lst_0)))
                                                       (let ((rest_0
                                                              (unsafe-cdr
                                                               lst_0)))
                                                         (let ((make-acc/mut_0
                                                                (unsafe-car
                                                                 lst_1)))
                                                           (let ((rest_1
                                                                  (unsafe-cdr
                                                                   lst_1)))
                                                             (let ((fold-var_1
                                                                    (let ((fold-var_1
                                                                           (cons
                                                                            (let ((raw-acc/mut_0
                                                                                   (if can-impersonate?_0
                                                                                     (deterministic-gensym
                                                                                      (unwrap
                                                                                       acc/mut_0))
                                                                                     acc/mut_0)))
                                                                              (let ((hd_1
                                                                                     (let ((p_0
                                                                                            (unwrap
                                                                                             make-acc/mut_0)))
                                                                                       (if (pair?
                                                                                            p_0)
                                                                                         (unwrap
                                                                                          (car
                                                                                           p_0))
                                                                                         #f))))
                                                                                (if (if (eq?
                                                                                         'make-struct-field-accessor
                                                                                         hd_1)
                                                                                      (let ((a_0
                                                                                             (cdr
                                                                                              (unwrap
                                                                                               make-acc/mut_0))))
                                                                                        (let ((p_0
                                                                                               (unwrap
                                                                                                a_0)))
                                                                                          (if (pair?
                                                                                               p_0)
                                                                                            (let ((a_1
                                                                                                   (cdr
                                                                                                    p_0)))
                                                                                              (let ((p_1
                                                                                                     (unwrap
                                                                                                      a_1)))
                                                                                                (if (pair?
                                                                                                     p_1)
                                                                                                  (let ((a_2
                                                                                                         (cdr
                                                                                                          p_1)))
                                                                                                    (let ((p_2
                                                                                                           (unwrap
                                                                                                            a_2)))
                                                                                                      (if (pair?
                                                                                                           p_2)
                                                                                                        (if (let ((a_3
                                                                                                                   (car
                                                                                                                    p_2)))
                                                                                                              (let ((p_3
                                                                                                                     (unwrap
                                                                                                                      a_3)))
                                                                                                                (if (pair?
                                                                                                                     p_3)
                                                                                                                  (if (let ((a_4
                                                                                                                             (car
                                                                                                                              p_3)))
                                                                                                                        (let ((app_5
                                                                                                                               (unwrap
                                                                                                                                'quote)))
                                                                                                                          (eq?
                                                                                                                           app_5
                                                                                                                           (unwrap
                                                                                                                            a_4))))
                                                                                                                    (let ((a_4
                                                                                                                           (cdr
                                                                                                                            p_3)))
                                                                                                                      (let ((p_4
                                                                                                                             (unwrap
                                                                                                                              a_4)))
                                                                                                                        (if (pair?
                                                                                                                             p_4)
                                                                                                                          (let ((a_5
                                                                                                                                 (cdr
                                                                                                                                  p_4)))
                                                                                                                            (let ((app_5
                                                                                                                                   (unwrap
                                                                                                                                    '())))
                                                                                                                              (eq?
                                                                                                                               app_5
                                                                                                                               (unwrap
                                                                                                                                a_5))))
                                                                                                                          #f)))
                                                                                                                    #f)
                                                                                                                  #f)))
                                                                                                          (let ((a_3
                                                                                                                 (cdr
                                                                                                                  p_2)))
                                                                                                            (let ((app_5
                                                                                                                   (unwrap
                                                                                                                    '())))
                                                                                                              (eq?
                                                                                                               app_5
                                                                                                               (unwrap
                                                                                                                a_3))))
                                                                                                          #f)
                                                                                                        #f)))
                                                                                                  #f)))
                                                                                            #f)))
                                                                                      #f)
                                                                                  (call-with-values
                                                                                   (lambda ()
                                                                                     (let ((d_0
                                                                                            (cdr
                                                                                             (unwrap
                                                                                              make-acc/mut_0))))
                                                                                       (let ((d_1
                                                                                              (cdr
                                                                                               (unwrap
                                                                                                d_0))))
                                                                                         (let ((p_0
                                                                                                (unwrap
                                                                                                 d_1)))
                                                                                           (let ((pos_0
                                                                                                  (let ((a_0
                                                                                                         (car
                                                                                                          p_0)))
                                                                                                    a_0)))
                                                                                             (let ((field-name_0
                                                                                                    (let ((d_2
                                                                                                           (cdr
                                                                                                            p_0)))
                                                                                                      (let ((a_0
                                                                                                             (car
                                                                                                              (unwrap
                                                                                                               d_2))))
                                                                                                        (let ((d_3
                                                                                                               (cdr
                                                                                                                (unwrap
                                                                                                                 a_0))))
                                                                                                          (let ((a_1
                                                                                                                 (car
                                                                                                                  (unwrap
                                                                                                                   d_3))))
                                                                                                            a_1))))))
                                                                                               (let ((pos_1
                                                                                                      pos_0))
                                                                                                 (values
                                                                                                  pos_1
                                                                                                  field-name_0))))))))
                                                                                   (case-lambda
                                                                                    ((pos_0
                                                                                      field-name_0)
                                                                                     (let ((raw-def_0
                                                                                            (list
                                                                                             'define
                                                                                             raw-acc/mut_0
                                                                                             (let ((pre_0
                                                                                                    ""))
                                                                                               (let ((st_0
                                                                                                      (struct-type-info-name
                                                                                                       sti_0)))
                                                                                                 (let ((sep_0
                                                                                                        "-"))
                                                                                                   (let ((post_0
                                                                                                          ""))
                                                                                                     (let ((proc-expr_0
                                                                                                            (list
                                                                                                             'record-accessor
                                                                                                             struct:s_0
                                                                                                             pos_0)))
                                                                                                       (let ((post_1
                                                                                                              post_0)
                                                                                                             (sep_1
                                                                                                              sep_0)
                                                                                                             (st_1
                                                                                                              st_0)
                                                                                                             (pre_1
                                                                                                              pre_0))
                                                                                                         (wrap-property-set
                                                                                                          proc-expr_0
                                                                                                          'inferred-name
                                                                                                          (string->symbol
                                                                                                           (let ((app_5
                                                                                                                  (symbol->string
                                                                                                                   st_1)))
                                                                                                             (string-append
                                                                                                              pre_1
                                                                                                              app_5
                                                                                                              sep_1
                                                                                                              (symbol->string
                                                                                                               field-name_0)
                                                                                                              post_1)))))))))))))
                                                                                       (if can-impersonate?_0
                                                                                         (list
                                                                                          'begin
                                                                                          raw-def_0
                                                                                          (list
                                                                                           'define
                                                                                           acc/mut_0
                                                                                           (let ((pre_0
                                                                                                  ""))
                                                                                             (let ((st_0
                                                                                                    (struct-type-info-name
                                                                                                     sti_0)))
                                                                                               (let ((sep_0
                                                                                                      "-"))
                                                                                                 (let ((post_0
                                                                                                        ""))
                                                                                                   (let ((proc-expr_0
                                                                                                          (list
                                                                                                           'lambda
                                                                                                           '(s)
                                                                                                           (list
                                                                                                            'if
                                                                                                            (list*
                                                                                                             raw-s?_0
                                                                                                             '(s))
                                                                                                            (list*
                                                                                                             raw-acc/mut_0
                                                                                                             '(s))
                                                                                                            (list
                                                                                                             '$value
                                                                                                             (list
                                                                                                              'impersonate-ref
                                                                                                              raw-acc/mut_0
                                                                                                              struct:s_0
                                                                                                              pos_0
                                                                                                              's
                                                                                                              (list
                                                                                                               'quote
                                                                                                               (struct-type-info-name
                                                                                                                sti_0))
                                                                                                              (list
                                                                                                               'quote
                                                                                                               field-name_0)))))))
                                                                                                     (let ((post_1
                                                                                                            post_0)
                                                                                                           (sep_1
                                                                                                            sep_0)
                                                                                                           (st_1
                                                                                                            st_0)
                                                                                                           (pre_1
                                                                                                            pre_0))
                                                                                                       (wrap-property-set
                                                                                                        proc-expr_0
                                                                                                        'inferred-name
                                                                                                        (string->symbol
                                                                                                         (let ((app_5
                                                                                                                (symbol->string
                                                                                                                 st_1)))
                                                                                                           (string-append
                                                                                                            pre_1
                                                                                                            app_5
                                                                                                            sep_1
                                                                                                            (symbol->string
                                                                                                             field-name_0)
                                                                                                            post_1))))))))))))
                                                                                         raw-def_0)))
                                                                                    (args
                                                                                     (raise-binding-result-arity-error
                                                                                      2
                                                                                      args))))
                                                                                  (if (if (eq?
                                                                                           'make-struct-field-mutator
                                                                                           hd_1)
                                                                                        (let ((a_0
                                                                                               (cdr
                                                                                                (unwrap
                                                                                                 make-acc/mut_0))))
                                                                                          (let ((p_0
                                                                                                 (unwrap
                                                                                                  a_0)))
                                                                                            (if (pair?
                                                                                                 p_0)
                                                                                              (let ((a_1
                                                                                                     (cdr
                                                                                                      p_0)))
                                                                                                (let ((p_1
                                                                                                       (unwrap
                                                                                                        a_1)))
                                                                                                  (if (pair?
                                                                                                       p_1)
                                                                                                    (let ((a_2
                                                                                                           (cdr
                                                                                                            p_1)))
                                                                                                      (let ((p_2
                                                                                                             (unwrap
                                                                                                              a_2)))
                                                                                                        (if (pair?
                                                                                                             p_2)
                                                                                                          (if (let ((a_3
                                                                                                                     (car
                                                                                                                      p_2)))
                                                                                                                (let ((p_3
                                                                                                                       (unwrap
                                                                                                                        a_3)))
                                                                                                                  (if (pair?
                                                                                                                       p_3)
                                                                                                                    (if (let ((a_4
                                                                                                                               (car
                                                                                                                                p_3)))
                                                                                                                          (let ((app_5
                                                                                                                                 (unwrap
                                                                                                                                  'quote)))
                                                                                                                            (eq?
                                                                                                                             app_5
                                                                                                                             (unwrap
                                                                                                                              a_4))))
                                                                                                                      (let ((a_4
                                                                                                                             (cdr
                                                                                                                              p_3)))
                                                                                                                        (let ((p_4
                                                                                                                               (unwrap
                                                                                                                                a_4)))
                                                                                                                          (if (pair?
                                                                                                                               p_4)
                                                                                                                            (let ((a_5
                                                                                                                                   (cdr
                                                                                                                                    p_4)))
                                                                                                                              (let ((app_5
                                                                                                                                     (unwrap
                                                                                                                                      '())))
                                                                                                                                (eq?
                                                                                                                                 app_5
                                                                                                                                 (unwrap
                                                                                                                                  a_5))))
                                                                                                                            #f)))
                                                                                                                      #f)
                                                                                                                    #f)))
                                                                                                            (let ((a_3
                                                                                                                   (cdr
                                                                                                                    p_2)))
                                                                                                              (let ((app_5
                                                                                                                     (unwrap
                                                                                                                      '())))
                                                                                                                (eq?
                                                                                                                 app_5
                                                                                                                 (unwrap
                                                                                                                  a_3))))
                                                                                                            #f)
                                                                                                          #f)))
                                                                                                    #f)))
                                                                                              #f)))
                                                                                        #f)
                                                                                    (call-with-values
                                                                                     (lambda ()
                                                                                       (let ((d_0
                                                                                              (cdr
                                                                                               (unwrap
                                                                                                make-acc/mut_0))))
                                                                                         (let ((d_1
                                                                                                (cdr
                                                                                                 (unwrap
                                                                                                  d_0))))
                                                                                           (let ((p_0
                                                                                                  (unwrap
                                                                                                   d_1)))
                                                                                             (let ((pos_0
                                                                                                    (let ((a_0
                                                                                                           (car
                                                                                                            p_0)))
                                                                                                      a_0)))
                                                                                               (let ((field-name_0
                                                                                                      (let ((d_2
                                                                                                             (cdr
                                                                                                              p_0)))
                                                                                                        (let ((a_0
                                                                                                               (car
                                                                                                                (unwrap
                                                                                                                 d_2))))
                                                                                                          (let ((d_3
                                                                                                                 (cdr
                                                                                                                  (unwrap
                                                                                                                   a_0))))
                                                                                                            (let ((a_1
                                                                                                                   (car
                                                                                                                    (unwrap
                                                                                                                     d_3))))
                                                                                                              a_1))))))
                                                                                                 (let ((pos_1
                                                                                                        pos_0))
                                                                                                   (values
                                                                                                    pos_1
                                                                                                    field-name_0))))))))
                                                                                     (case-lambda
                                                                                      ((pos_0
                                                                                        field-name_0)
                                                                                       (let ((raw-def_0
                                                                                              (list
                                                                                               'define
                                                                                               raw-acc/mut_0
                                                                                               (let ((pre_0
                                                                                                      "set-"))
                                                                                                 (let ((st_0
                                                                                                        (struct-type-info-name
                                                                                                         sti_0)))
                                                                                                   (let ((sep_0
                                                                                                          "-"))
                                                                                                     (let ((post_0
                                                                                                            "!"))
                                                                                                       (let ((proc-expr_0
                                                                                                              (list
                                                                                                               'record-mutator
                                                                                                               struct:s_0
                                                                                                               pos_0)))
                                                                                                         (let ((post_1
                                                                                                                post_0)
                                                                                                               (sep_1
                                                                                                                sep_0)
                                                                                                               (st_1
                                                                                                                st_0)
                                                                                                               (pre_1
                                                                                                                pre_0))
                                                                                                           (wrap-property-set
                                                                                                            proc-expr_0
                                                                                                            'inferred-name
                                                                                                            (string->symbol
                                                                                                             (let ((app_5
                                                                                                                    (symbol->string
                                                                                                                     st_1)))
                                                                                                               (string-append
                                                                                                                pre_1
                                                                                                                app_5
                                                                                                                sep_1
                                                                                                                (symbol->string
                                                                                                                 field-name_0)
                                                                                                                post_1)))))))))))))
                                                                                         (let ((abs-pos_0
                                                                                                (+
                                                                                                 pos_0
                                                                                                 (let ((app_5
                                                                                                        (struct-type-info-field-count
                                                                                                         sti_0)))
                                                                                                   (-
                                                                                                    app_5
                                                                                                    (struct-type-info-immediate-field-count
                                                                                                     sti_0))))))
                                                                                           (if can-impersonate?_0
                                                                                             (list
                                                                                              'begin
                                                                                              raw-def_0
                                                                                              (list
                                                                                               'define
                                                                                               acc/mut_0
                                                                                               (let ((pre_0
                                                                                                      "set-"))
                                                                                                 (let ((st_0
                                                                                                        (struct-type-info-name
                                                                                                         sti_0)))
                                                                                                   (let ((sep_0
                                                                                                          "-"))
                                                                                                     (let ((post_0
                                                                                                            "!"))
                                                                                                       (let ((proc-expr_0
                                                                                                              (list
                                                                                                               'lambda
                                                                                                               '(s
                                                                                                                 v)
                                                                                                               (list
                                                                                                                'if
                                                                                                                (list*
                                                                                                                 raw-s?_0
                                                                                                                 '(s))
                                                                                                                (list*
                                                                                                                 raw-acc/mut_0
                                                                                                                 '(s
                                                                                                                   v))
                                                                                                                (list
                                                                                                                 '$value
                                                                                                                 (list
                                                                                                                  'impersonate-set!
                                                                                                                  raw-acc/mut_0
                                                                                                                  struct:s_0
                                                                                                                  pos_0
                                                                                                                  abs-pos_0
                                                                                                                  's
                                                                                                                  'v
                                                                                                                  (list
                                                                                                                   'quote
                                                                                                                   (struct-type-info-name
                                                                                                                    sti_0))
                                                                                                                  (list
                                                                                                                   'quote
                                                                                                                   field-name_0)))))))
                                                                                                         (let ((post_1
                                                                                                                post_0)
                                                                                                               (sep_1
                                                                                                                sep_0)
                                                                                                               (st_1
                                                                                                                st_0)
                                                                                                               (pre_1
                                                                                                                pre_0))
                                                                                                           (wrap-property-set
                                                                                                            proc-expr_0
                                                                                                            'inferred-name
                                                                                                            (string->symbol
                                                                                                             (let ((app_5
                                                                                                                    (symbol->string
                                                                                                                     st_1)))
                                                                                                               (string-append
                                                                                                                pre_1
                                                                                                                app_5
                                                                                                                sep_1
                                                                                                                (symbol->string
                                                                                                                 field-name_0)
                                                                                                                post_1))))))))))))
                                                                                             raw-def_0))))
                                                                                      (args
                                                                                       (raise-binding-result-arity-error
                                                                                        2
                                                                                        args))))
                                                                                    (error
                                                                                     "oops")))))
                                                                            fold-var_0)))
                                                                      (values
                                                                       fold-var_1))))
                                                               (for-loop_0
                                                                fold-var_1
                                                                rest_0
                                                                rest_1))))))
                                                     fold-var_0))))))
                                            (for-loop_0
                                             null
                                             acc/muts_0
                                             make-acc/muts_0))))))
                                   (qq-append
                                    app_5
                                    (list
                                     (let ((app_6
                                            (deterministic-gensym "effect")))
                                       (list
                                        'define
                                        app_6
                                        (list*
                                         'begin
                                         (list
                                          'register-struct-constructor!
                                          make-s_0)
                                         (list
                                          'register-struct-predicate!
                                          s?_0)
                                         (qq-append
                                          (reverse$1
                                           (begin
                                             (letrec*
                                              ((for-loop_0
                                                (|#%name|
                                                 for-loop
                                                 (lambda (fold-var_0
                                                          lst_0
                                                          lst_1)
                                                   (begin
                                                     (if (if (pair? lst_0)
                                                           (pair? lst_1)
                                                           #f)
                                                       (let ((acc/mut_0
                                                              (unsafe-car
                                                               lst_0)))
                                                         (let ((rest_0
                                                                (unsafe-cdr
                                                                 lst_0)))
                                                           (let ((make-acc/mut_0
                                                                  (unsafe-car
                                                                   lst_1)))
                                                             (let ((rest_1
                                                                    (unsafe-cdr
                                                                     lst_1)))
                                                               (let ((fold-var_1
                                                                      (let ((fold-var_1
                                                                             (cons
                                                                              (let ((hd_1
                                                                                     (let ((p_0
                                                                                            (unwrap
                                                                                             make-acc/mut_0)))
                                                                                       (if (pair?
                                                                                            p_0)
                                                                                         (unwrap
                                                                                          (car
                                                                                           p_0))
                                                                                         #f))))
                                                                                (if (if (eq?
                                                                                         'make-struct-field-accessor
                                                                                         hd_1)
                                                                                      (let ((a_0
                                                                                             (cdr
                                                                                              (unwrap
                                                                                               make-acc/mut_0))))
                                                                                        (let ((p_0
                                                                                               (unwrap
                                                                                                a_0)))
                                                                                          (if (pair?
                                                                                               p_0)
                                                                                            (let ((a_1
                                                                                                   (cdr
                                                                                                    p_0)))
                                                                                              (let ((p_1
                                                                                                     (unwrap
                                                                                                      a_1)))
                                                                                                (if (pair?
                                                                                                     p_1)
                                                                                                  (let ((a_2
                                                                                                         (cdr
                                                                                                          p_1)))
                                                                                                    (let ((p_2
                                                                                                           (unwrap
                                                                                                            a_2)))
                                                                                                      (if (pair?
                                                                                                           p_2)
                                                                                                        (let ((a_3
                                                                                                               (cdr
                                                                                                                p_2)))
                                                                                                          (let ((app_7
                                                                                                                 (unwrap
                                                                                                                  '())))
                                                                                                            (eq?
                                                                                                             app_7
                                                                                                             (unwrap
                                                                                                              a_3))))
                                                                                                        #f)))
                                                                                                  #f)))
                                                                                            #f)))
                                                                                      #f)
                                                                                  (let ((pos_0
                                                                                         (let ((d_0
                                                                                                (cdr
                                                                                                 (unwrap
                                                                                                  make-acc/mut_0))))
                                                                                           (let ((d_1
                                                                                                  (cdr
                                                                                                   (unwrap
                                                                                                    d_0))))
                                                                                             (let ((a_0
                                                                                                    (car
                                                                                                     (unwrap
                                                                                                      d_1))))
                                                                                               a_0)))))
                                                                                    (list
                                                                                     'register-struct-field-accessor!
                                                                                     acc/mut_0
                                                                                     struct:s_0
                                                                                     pos_0))
                                                                                  (if (if (eq?
                                                                                           'make-struct-field-mutator
                                                                                           hd_1)
                                                                                        (let ((a_0
                                                                                               (cdr
                                                                                                (unwrap
                                                                                                 make-acc/mut_0))))
                                                                                          (let ((p_0
                                                                                                 (unwrap
                                                                                                  a_0)))
                                                                                            (if (pair?
                                                                                                 p_0)
                                                                                              (let ((a_1
                                                                                                     (cdr
                                                                                                      p_0)))
                                                                                                (let ((p_1
                                                                                                       (unwrap
                                                                                                        a_1)))
                                                                                                  (if (pair?
                                                                                                       p_1)
                                                                                                    (let ((a_2
                                                                                                           (cdr
                                                                                                            p_1)))
                                                                                                      (let ((p_2
                                                                                                             (unwrap
                                                                                                              a_2)))
                                                                                                        (if (pair?
                                                                                                             p_2)
                                                                                                          (let ((a_3
                                                                                                                 (cdr
                                                                                                                  p_2)))
                                                                                                            (let ((app_7
                                                                                                                   (unwrap
                                                                                                                    '())))
                                                                                                              (eq?
                                                                                                               app_7
                                                                                                               (unwrap
                                                                                                                a_3))))
                                                                                                          #f)))
                                                                                                    #f)))
                                                                                              #f)))
                                                                                        #f)
                                                                                    (let ((pos_0
                                                                                           (let ((d_0
                                                                                                  (cdr
                                                                                                   (unwrap
                                                                                                    make-acc/mut_0))))
                                                                                             (let ((d_1
                                                                                                    (cdr
                                                                                                     (unwrap
                                                                                                      d_0))))
                                                                                               (let ((a_0
                                                                                                      (car
                                                                                                       (unwrap
                                                                                                        d_1))))
                                                                                                 a_0)))))
                                                                                      (list
                                                                                       'register-struct-field-mutator!
                                                                                       acc/mut_0
                                                                                       struct:s_0
                                                                                       pos_0))
                                                                                    (error
                                                                                     "oops"))))
                                                                              fold-var_0)))
                                                                        (values
                                                                         fold-var_1))))
                                                                 (for-loop_0
                                                                  fold-var_1
                                                                  rest_0
                                                                  rest_1))))))
                                                       fold-var_0))))))
                                              (for-loop_0
                                               null
                                               acc/muts_0
                                               make-acc/muts_0))))
                                          '((void))))))))))))))))))))
               #f)))
          (args (raise-binding-result-arity-error 14 args))))
        #f))))
(define struct-convert-local.1
  (letrec ((loop_0
            (|#%name|
             loop
             (lambda (new-seq_0)
               (begin
                 (if (let ((app_0 (unwrap '())))
                       (eq? app_0 (unwrap new-seq_0)))
                   null
                   (if (let ((p_0 (unwrap new-seq_0)))
                         (if (pair? p_0)
                           (if (let ((a_0 (car p_0)))
                                 (let ((p_1 (unwrap a_0)))
                                   (if (pair? p_1)
                                     (if (let ((a_1 (car p_1)))
                                           (let ((app_0 (unwrap 'begin)))
                                             (eq? app_0 (unwrap a_1))))
                                       (let ((a_1 (cdr p_1))) (wrap-list? a_1))
                                       #f)
                                     #f)))
                             #t
                             #f)
                           #f))
                     (call-with-values
                      (lambda ()
                        (let ((p_0 (unwrap new-seq_0)))
                          (let ((forms_0
                                 (let ((a_0 (car p_0)))
                                   (let ((d_0 (cdr (unwrap a_0))))
                                     (unwrap-list d_0)))))
                            (let ((rest_0 (let ((d_0 (cdr p_0))) d_0)))
                              (let ((forms_1 forms_0))
                                (values forms_1 rest_0))))))
                      (case-lambda
                       ((forms_0 rest_0) (loop_0 (append forms_0 rest_0)))
                       (args (raise-binding-result-arity-error 2 args))))
                     (if (let ((p_0 (unwrap new-seq_0)))
                           (if (pair? p_0)
                             (if (let ((a_0 (car p_0)))
                                   (let ((p_1 (unwrap a_0)))
                                     (if (pair? p_1)
                                       (if (let ((a_1 (car p_1)))
                                             (let ((app_0 (unwrap 'define)))
                                               (eq? app_0 (unwrap a_1))))
                                         (let ((a_1 (cdr p_1)))
                                           (let ((p_2 (unwrap a_1)))
                                             (if (pair? p_2)
                                               (let ((a_2 (cdr p_2)))
                                                 (let ((p_3 (unwrap a_2)))
                                                   (if (pair? p_3)
                                                     (let ((a_3 (cdr p_3)))
                                                       (let ((app_0
                                                              (unwrap '())))
                                                         (eq?
                                                          app_0
                                                          (unwrap a_3))))
                                                     #f)))
                                               #f)))
                                         #f)
                                       #f)))
                               #t
                               #f)
                             #f))
                       (call-with-values
                        (lambda ()
                          (let ((p_0 (unwrap new-seq_0)))
                            (call-with-values
                             (lambda ()
                               (let ((a_0 (car p_0)))
                                 (let ((d_0 (cdr (unwrap a_0))))
                                   (let ((p_1 (unwrap d_0)))
                                     (let ((id_0 (let ((a_1 (car p_1))) a_1)))
                                       (let ((rhs_0
                                              (let ((d_1 (cdr p_1)))
                                                (let ((a_1 (car (unwrap d_1))))
                                                  a_1))))
                                         (let ((id_1 id_0))
                                           (values id_1 rhs_0))))))))
                             (case-lambda
                              ((id_0 rhs_0)
                               (let ((rest_0 (let ((d_0 (cdr p_0))) d_0)))
                                 (let ((id_1 id_0) (rhs_1 rhs_0))
                                   (values id_1 rhs_1 rest_0))))
                              (args
                               (raise-binding-result-arity-error 2 args))))))
                        (case-lambda
                         ((id_0 rhs_0 rest_0)
                          (cons (list id_0 rhs_0) (loop_0 rest_0)))
                         (args (raise-binding-result-arity-error 3 args))))
                       (error 'match "failed ~e" new-seq_0))))))))
           (loop_1
            (|#%name|
             loop
             (lambda (bodys_0 new-knowns_0 schemify11_0 new-seq_0)
               (begin
                 (if (let ((app_0 (unwrap '())))
                       (eq? app_0 (unwrap new-seq_0)))
                   (let ((exprs_0
                          (schemify-body$1 schemify11_0 new-knowns_0 bodys_0)))
                     (if (if (pair? exprs_0) (null? (cdr exprs_0)) #f)
                       (car exprs_0)
                       (list* 'begin exprs_0)))
                   (if (let ((p_0 (unwrap new-seq_0)))
                         (if (pair? p_0)
                           (if (let ((a_0 (car p_0)))
                                 (let ((p_1 (unwrap a_0)))
                                   (if (pair? p_1)
                                     (if (let ((a_1 (car p_1)))
                                           (let ((app_0 (unwrap 'begin)))
                                             (eq? app_0 (unwrap a_1))))
                                       (let ((a_1 (cdr p_1))) (wrap-list? a_1))
                                       #f)
                                     #f)))
                             #t
                             #f)
                           #f))
                     (call-with-values
                      (lambda ()
                        (let ((p_0 (unwrap new-seq_0)))
                          (let ((forms_0
                                 (let ((a_0 (car p_0)))
                                   (let ((d_0 (cdr (unwrap a_0))))
                                     (unwrap-list d_0)))))
                            (let ((rest_0 (let ((d_0 (cdr p_0))) d_0)))
                              (let ((forms_1 forms_0))
                                (values forms_1 rest_0))))))
                      (case-lambda
                       ((forms_0 rest_0)
                        (loop_1
                         bodys_0
                         new-knowns_0
                         schemify11_0
                         (append forms_0 rest_0)))
                       (args (raise-binding-result-arity-error 2 args))))
                     (if (let ((p_0 (unwrap new-seq_0)))
                           (if (pair? p_0)
                             (if (let ((a_0 (car p_0)))
                                   (let ((p_1 (unwrap a_0)))
                                     (if (pair? p_1)
                                       (if (let ((a_1 (car p_1)))
                                             (let ((app_0 (unwrap 'define)))
                                               (eq? app_0 (unwrap a_1))))
                                         (let ((a_1 (cdr p_1)))
                                           (let ((p_2 (unwrap a_1)))
                                             (if (pair? p_2)
                                               (let ((a_2 (cdr p_2)))
                                                 (let ((p_3 (unwrap a_2)))
                                                   (if (pair? p_3)
                                                     (let ((a_3 (cdr p_3)))
                                                       (let ((app_0
                                                              (unwrap '())))
                                                         (eq?
                                                          app_0
                                                          (unwrap a_3))))
                                                     #f)))
                                               #f)))
                                         #f)
                                       #f)))
                               #t
                               #f)
                             #f))
                       (call-with-values
                        (lambda ()
                          (let ((p_0 (unwrap new-seq_0)))
                            (call-with-values
                             (lambda ()
                               (let ((a_0 (car p_0)))
                                 (let ((d_0 (cdr (unwrap a_0))))
                                   (let ((p_1 (unwrap d_0)))
                                     (let ((id_0 (let ((a_1 (car p_1))) a_1)))
                                       (let ((rhs_0
                                              (let ((d_1 (cdr p_1)))
                                                (let ((a_1 (car (unwrap d_1))))
                                                  a_1))))
                                         (let ((id_1 id_0))
                                           (values id_1 rhs_0))))))))
                             (case-lambda
                              ((id_0 rhs_0)
                               (let ((rest_0 (let ((d_0 (cdr p_0))) d_0)))
                                 (let ((id_1 id_0) (rhs_1 rhs_0))
                                   (values id_1 rhs_1 rest_0))))
                              (args
                               (raise-binding-result-arity-error 2 args))))))
                        (case-lambda
                         ((id_0 rhs_0 rest_0)
                          (list
                           'let
                           (list (list id_0 rhs_0))
                           (loop_1 bodys_0 new-knowns_0 schemify11_0 rest_0)))
                         (args (raise-binding-result-arity-error 3 args))))
                       (error 'match "failed ~e" new-seq_0)))))))))
    (|#%name|
     struct-convert-local
     (lambda (letrec?1_0
              unsafe-mode?2_0
              form5_0
              prim-knowns6_0
              knowns7_0
              imports8_0
              mutated9_0
              simples10_0
              schemify11_0)
       (begin
         (if (let ((p_0 (unwrap form5_0)))
               (if (pair? p_0)
                 (let ((a_0 (cdr p_0)))
                   (let ((p_1 (unwrap a_0)))
                     (if (pair? p_1)
                       (if (let ((a_1 (car p_1)))
                             (let ((p_2 (unwrap a_1)))
                               (if (pair? p_2)
                                 (if (let ((a_2 (car p_2)))
                                       (let ((p_3 (unwrap a_2)))
                                         (if (pair? p_3)
                                           (let ((a_3 (cdr p_3)))
                                             (let ((p_4 (unwrap a_3)))
                                               (if (pair? p_4)
                                                 (let ((a_4 (cdr p_4)))
                                                   (let ((app_0 (unwrap '())))
                                                     (eq? app_0 (unwrap a_4))))
                                                 #f)))
                                           #f)))
                                   (let ((a_2 (cdr p_2)))
                                     (let ((app_0 (unwrap '())))
                                       (eq? app_0 (unwrap a_2))))
                                   #f)
                                 #f)))
                         (let ((a_1 (cdr p_1))) (wrap-list? a_1))
                         #f)
                       #f)))
                 #f))
           (call-with-values
            (lambda ()
              (let ((d_0 (cdr (unwrap form5_0))))
                (let ((p_0 (unwrap d_0)))
                  (call-with-values
                   (lambda ()
                     (let ((a_0 (car p_0)))
                       (let ((a_1 (car (unwrap a_0))))
                         (let ((p_1 (unwrap a_1)))
                           (let ((ids_0 (let ((a_2 (car p_1))) a_2)))
                             (let ((rhs_0
                                    (let ((d_1 (cdr p_1)))
                                      (let ((a_2 (car (unwrap d_1)))) a_2))))
                               (let ((ids_1 ids_0)) (values ids_1 rhs_0))))))))
                   (case-lambda
                    ((ids_0 rhs_0)
                     (let ((bodys_0 (let ((d_1 (cdr p_0))) (unwrap-list d_1))))
                       (let ((ids_1 ids_0) (rhs_1 rhs_0))
                         (values ids_1 rhs_1 bodys_0))))
                    (args (raise-binding-result-arity-error 2 args)))))))
            (case-lambda
             ((ids_0 rhs_0 bodys_0)
              (let ((defn_0 (list 'define-values ids_0 rhs_0)))
                (let ((new-seq_0
                       (struct-convert
                        defn_0
                        prim-knowns6_0
                        knowns7_0
                        imports8_0
                        mutated9_0
                        schemify11_0
                        #t)))
                  (if new-seq_0
                    (let ((hd_0
                           (let ((p_0 (unwrap new-seq_0)))
                             (if (pair? p_0) (unwrap (car p_0)) #f))))
                      (if (if (eq? 'begin hd_0) #t #f)
                        (let ((new-seq_1
                               (let ((d_0 (cdr (unwrap new-seq_0)))) d_0)))
                          (call-with-values
                           (lambda ()
                             (find-definitions.1
                              #f
                              hash2610
                              defn_0
                              prim-knowns6_0
                              knowns7_0
                              imports8_0
                              mutated9_0
                              simples10_0
                              unsafe-mode?2_0))
                           (case-lambda
                            ((new-knowns_0 info_0)
                             (if letrec?1_0
                               (let ((app_0 (loop_0 new-seq_1)))
                                 (list*
                                  'letrec*
                                  app_0
                                  (schemify-body$1
                                   schemify11_0
                                   new-knowns_0
                                   bodys_0)))
                               (loop_1
                                bodys_0
                                new-knowns_0
                                schemify11_0
                                new-seq_1)))
                            (args (raise-binding-result-arity-error 2 args)))))
                        (error 'match "failed ~e" new-seq_0)))
                    #f))))
             (args (raise-binding-result-arity-error 3 args))))
           #f))))))
(define schemify-body$1
  (|#%name|
   schemify-body
   (lambda (schemify_0 knowns_0 l_0)
     (begin
       (reverse$1
        (begin
          (letrec*
           ((for-loop_0
             (|#%name|
              for-loop
              (lambda (fold-var_0 lst_0)
                (begin
                  (if (pair? lst_0)
                    (let ((e_0 (unsafe-car lst_0)))
                      (let ((rest_0 (unsafe-cdr lst_0)))
                        (let ((fold-var_1
                               (let ((fold-var_1
                                      (cons
                                       (|#%app| schemify_0 e_0 knowns_0)
                                       fold-var_0)))
                                 (values fold-var_1))))
                          (for-loop_0 fold-var_1 rest_0))))
                    fold-var_0))))))
           (for-loop_0 null l_0))))))))
(define name-procedure
  (lambda (pre_0 st_0 sep_0 fld_0 post_0 proc-expr_0)
    (wrap-property-set
     proc-expr_0
     'inferred-name
     (string->symbol
      (let ((app_0 (symbol->string st_0)))
        (string-append pre_0 app_0 sep_0 (symbol->string fld_0) post_0))))))
(define get-definition-source-syms
  (lambda (bodys_0)
    (begin
      (letrec*
       ((for-loop_0
         (|#%name|
          for-loop
          (lambda (src-syms_0 lst_0)
            (begin
              (if (pair? lst_0)
                (let ((body_0 (unsafe-car lst_0)))
                  (let ((rest_0 (unsafe-cdr lst_0)))
                    (let ((src-syms_1
                           (let ((src-syms_1
                                  (let ((hd_0
                                         (let ((p_0 (unwrap body_0)))
                                           (if (pair? p_0)
                                             (unwrap (car p_0))
                                             #f))))
                                    (if (if (eq? 'define-values hd_0)
                                          (let ((a_0 (cdr (unwrap body_0))))
                                            (let ((p_0 (unwrap a_0)))
                                              (if (pair? p_0)
                                                (let ((a_1 (cdr p_0)))
                                                  (let ((p_1 (unwrap a_1)))
                                                    (if (pair? p_1)
                                                      (let ((a_2 (cdr p_1)))
                                                        (let ((app_0
                                                               (unwrap '())))
                                                          (eq?
                                                           app_0
                                                           (unwrap a_2))))
                                                      #f)))
                                                #f)))
                                          #f)
                                      (call-with-values
                                       (lambda ()
                                         (let ((d_0 (cdr (unwrap body_0))))
                                           (let ((p_0 (unwrap d_0)))
                                             (let ((ids_0
                                                    (let ((a_0 (car p_0)))
                                                      a_0)))
                                               (let ((rhs_0
                                                      (let ((d_1 (cdr p_0)))
                                                        (let ((a_0
                                                               (car
                                                                (unwrap d_1))))
                                                          a_0))))
                                                 (let ((ids_1 ids_0))
                                                   (values ids_1 rhs_0)))))))
                                       (case-lambda
                                        ((ids_0 rhs_0)
                                         (begin
                                           (letrec*
                                            ((for-loop_1
                                              (|#%name|
                                               for-loop
                                               (lambda (src-syms_1 lst_1)
                                                 (begin
                                                   (if (pair? lst_1)
                                                     (let ((id_0
                                                            (unsafe-car
                                                             lst_1)))
                                                       (let ((rest_1
                                                              (unsafe-cdr
                                                               lst_1)))
                                                         (let ((src-syms_2
                                                                (let ((src-syms_2
                                                                       (let ((u-id_0
                                                                              (unwrap
                                                                               id_0)))
                                                                         (let ((sym_0
                                                                                (let ((or-part_0
                                                                                       (wrap-property
                                                                                        id_0
                                                                                        'source-name)))
                                                                                  (if or-part_0
                                                                                    or-part_0
                                                                                    u-id_0))))
                                                                           (if (eq?
                                                                                sym_0
                                                                                u-id_0)
                                                                             src-syms_1
                                                                             (hash-set
                                                                              src-syms_1
                                                                              u-id_0
                                                                              sym_0))))))
                                                                  (values
                                                                   src-syms_2))))
                                                           (for-loop_1
                                                            src-syms_2
                                                            rest_1))))
                                                     src-syms_1))))))
                                            (for-loop_1 src-syms_0 ids_0))))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))
                                      src-syms_0))))
                             (values src-syms_1))))
                      (for-loop_0 src-syms_1 rest_0))))
                src-syms_0))))))
       (for-loop_0 hash2610 bodys_0)))))
(define letrec-splitable-values-binding?
  (lambda (idss_0 rhss_0)
    (if (pair? idss_0)
      (if (null? (cdr idss_0))
        (if (let ((v_0 (car rhss_0))) (pair? (unwrap v_0)))
          (if (eq? 'values (wrap-car (car rhss_0)))
            (if (let ((app_0 (length (wrap-cdr (car rhss_0)))))
                  (= app_0 (length (car idss_0))))
              (let ((lst_0 (wrap-cdr (car rhss_0))))
                (begin
                  (letrec*
                   ((for-loop_0
                     (|#%name|
                      for-loop
                      (lambda (result_0 lst_1)
                        (begin
                          (if (pair? lst_1)
                            (let ((rhs_0 (unsafe-car lst_1)))
                              (let ((rest_0 (unsafe-cdr lst_1)))
                                (let ((result_1
                                       (let ((result_1 (lambda?.1 #t rhs_0)))
                                         (values result_1))))
                                  (if (if (not
                                           (let ((x_0 (list rhs_0)))
                                             (not result_1)))
                                        #t
                                        #f)
                                    (for-loop_0 result_1 rest_0)
                                    result_1))))
                            result_0))))))
                   (for-loop_0 #t lst_0))))
              #f)
            #f)
          #f)
        #f)
      #f)))
(define letrec-split-values-binding
  (lambda (idss_0 rhss_0 bodys_0)
    (list*
     'letrec-values
     (reverse$1
      (let ((lst_0 (car idss_0)))
        (let ((lst_1 (wrap-cdr (car rhss_0))))
          (let ((lst_2 lst_0))
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (fold-var_0 lst_3 lst_4)
                    (begin
                      (if (if (pair? lst_3) (pair? lst_4) #f)
                        (let ((id_0 (unsafe-car lst_3)))
                          (let ((rest_0 (unsafe-cdr lst_3)))
                            (let ((rhs_0 (unsafe-car lst_4)))
                              (let ((rest_1 (unsafe-cdr lst_4)))
                                (let ((fold-var_1
                                       (cons
                                        (list (list id_0) rhs_0)
                                        fold-var_0)))
                                  (let ((fold-var_2 (values fold-var_1)))
                                    (for-loop_0 fold-var_2 rest_0 rest_1)))))))
                        fold-var_0))))))
               (for-loop_0 null lst_2 lst_1)))))))
     bodys_0)))
(define letrec-conversion
  (letrec ((loop_0
            (|#%name|
             loop
             (lambda (mutated_0 ids_0)
               (begin
                 (if (symbol? ids_0)
                   (needs-letrec-convert-mutated-state?
                    (hash-ref mutated_0 ids_0 #f))
                   (if (syntax? ids_0)
                     (loop_0 mutated_0 (unwrap ids_0))
                     (if (pair? ids_0)
                       (let ((or-part_0 (loop_0 mutated_0 (car ids_0))))
                         (if or-part_0
                           or-part_0
                           (loop_0 mutated_0 (cdr ids_0))))
                       #f))))))))
    (lambda (ids_0 mutated_0 for-cify?_0 e_0)
      (let ((need-convert?_0
             (if (not for-cify?_0) (loop_0 mutated_0 ids_0) #f)))
        (if need-convert?_0
          (if (let ((p_0 (unwrap e_0)))
                (if (pair? p_0)
                  (let ((a_0 (cdr p_0)))
                    (let ((p_1 (unwrap a_0)))
                      (if (pair? p_1)
                        (if (let ((a_1 (car p_1)))
                              (if (wrap-list? a_1)
                                (begin
                                  (letrec*
                                   ((for-loop_0
                                     (|#%name|
                                      for-loop
                                      (lambda (result_0 lst_0)
                                        (begin
                                          (if (not (null? (unwrap lst_0)))
                                            (let ((v_0
                                                   (if (pair? (unwrap lst_0))
                                                     (wrap-car lst_0)
                                                     lst_0)))
                                              (let ((rest_0
                                                     (if (pair? (unwrap lst_0))
                                                       (wrap-cdr lst_0)
                                                       null)))
                                                (let ((v_1 v_0))
                                                  (let ((result_1
                                                         (let ((result_1
                                                                (let ((p_2
                                                                       (unwrap
                                                                        v_1)))
                                                                  (if (pair?
                                                                       p_2)
                                                                    (let ((a_2
                                                                           (cdr
                                                                            p_2)))
                                                                      (let ((p_3
                                                                             (unwrap
                                                                              a_2)))
                                                                        (if (pair?
                                                                             p_3)
                                                                          (let ((a_3
                                                                                 (cdr
                                                                                  p_3)))
                                                                            (let ((app_0
                                                                                   (unwrap
                                                                                    '())))
                                                                              (eq?
                                                                               app_0
                                                                               (unwrap
                                                                                a_3))))
                                                                          #f)))
                                                                    #f))))
                                                           (values result_1))))
                                                    (if (if (not
                                                             (let ((x_0
                                                                    (list
                                                                     v_1)))
                                                               (not result_1)))
                                                          #t
                                                          #f)
                                                      (for-loop_0
                                                       result_1
                                                       rest_0)
                                                      result_1)))))
                                            result_0))))))
                                   (for-loop_0 #t a_1)))
                                #f))
                          #t
                          #f)
                        #f)))
                  #f))
            (call-with-values
             (lambda ()
               (let ((d_0 (cdr (unwrap e_0))))
                 (let ((p_0 (unwrap d_0)))
                   (call-with-values
                    (lambda ()
                      (let ((a_0 (car p_0)))
                        (call-with-values
                         (lambda ()
                           (begin
                             (letrec*
                              ((for-loop_0
                                (|#%name|
                                 for-loop
                                 (lambda (ids_1 rhss_0 lst_0)
                                   (begin
                                     (if (not (null? (unwrap lst_0)))
                                       (let ((v_0
                                              (if (pair? (unwrap lst_0))
                                                (wrap-car lst_0)
                                                lst_0)))
                                         (let ((rest_0
                                                (if (pair? (unwrap lst_0))
                                                  (wrap-cdr lst_0)
                                                  null)))
                                           (let ((v_1 v_0))
                                             (call-with-values
                                              (lambda ()
                                                (call-with-values
                                                 (lambda ()
                                                   (call-with-values
                                                    (lambda ()
                                                      (let ((p_1 (unwrap v_1)))
                                                        (let ((ids_2
                                                               (let ((a_1
                                                                      (car
                                                                       p_1)))
                                                                 a_1)))
                                                          (let ((rhss_1
                                                                 (let ((d_1
                                                                        (cdr
                                                                         p_1)))
                                                                   (let ((a_1
                                                                          (car
                                                                           (unwrap
                                                                            d_1))))
                                                                     a_1))))
                                                            (let ((ids_3
                                                                   ids_2))
                                                              (values
                                                               ids_3
                                                               rhss_1))))))
                                                    (case-lambda
                                                     ((ids3_0 rhss4_0)
                                                      (values
                                                       (cons ids3_0 ids_1)
                                                       (cons rhss4_0 rhss_0)))
                                                     (args
                                                      (raise-binding-result-arity-error
                                                       2
                                                       args)))))
                                                 (case-lambda
                                                  ((ids_2 rhss_1)
                                                   (values ids_2 rhss_1))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    2
                                                    args)))))
                                              (case-lambda
                                               ((ids_2 rhss_1)
                                                (for-loop_0
                                                 ids_2
                                                 rhss_1
                                                 rest_0))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args)))))))
                                       (values ids_1 rhss_0)))))))
                              (for-loop_0 null null a_0))))
                         (case-lambda
                          ((ids_1 rhss_0)
                           (let ((app_0 (reverse$1 ids_1)))
                             (values app_0 (reverse$1 rhss_0))))
                          (args (raise-binding-result-arity-error 2 args))))))
                    (case-lambda
                     ((ids_1 rhss_0)
                      (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                        (let ((ids_2 ids_1) (rhss_1 rhss_0))
                          (values ids_2 rhss_1 body_0))))
                     (args (raise-binding-result-arity-error 2 args)))))))
             (case-lambda
              ((ids_1 rhss_0 body_0)
               (let ((app_0
                      (reverse$1
                       (begin
                         (letrec*
                          ((for-loop_0
                            (|#%name|
                             for-loop
                             (lambda (fold-var_0 lst_0)
                               (begin
                                 (if (pair? lst_0)
                                   (let ((id_0 (unsafe-car lst_0)))
                                     (let ((rest_0 (unsafe-cdr lst_0)))
                                       (let ((fold-var_1
                                              (cons
                                               (list* id_0 '(unsafe-undefined))
                                               fold-var_0)))
                                         (let ((fold-var_2
                                                (values fold-var_1)))
                                           (for-loop_0 fold-var_2 rest_0)))))
                                   fold-var_0))))))
                          (for-loop_0 null ids_1))))))
                 (list*
                  'let
                  app_0
                  (qq-append
                   (reverse$1
                    (begin
                      (letrec*
                       ((for-loop_0
                         (|#%name|
                          for-loop
                          (lambda (fold-var_0 lst_0 lst_1)
                            (begin
                              (if (if (pair? lst_0) (pair? lst_1) #f)
                                (let ((id_0 (unsafe-car lst_0)))
                                  (let ((rest_0 (unsafe-cdr lst_0)))
                                    (let ((rhs_0 (unsafe-car lst_1)))
                                      (let ((rest_1 (unsafe-cdr lst_1)))
                                        (let ((fold-var_1
                                               (cons
                                                (list 'set! id_0 rhs_0)
                                                fold-var_0)))
                                          (let ((fold-var_2
                                                 (values fold-var_1)))
                                            (for-loop_0
                                             fold-var_2
                                             rest_0
                                             rest_1)))))))
                                fold-var_0))))))
                       (for-loop_0 null ids_1 rhss_0))))
                   body_0))))
              (args (raise-binding-result-arity-error 3 args))))
            (error 'match "failed ~e" e_0))
          e_0)))))
(define mutated-in-body
  (lambda (l_0
           exports_0
           prim-knowns_0
           knowns_0
           imports_0
           simples_0
           unsafe-mode?_0
           enforce-constant?_0)
    (let ((mutated_0 (make-hasheq)))
      (begin
        (begin
          (letrec*
           ((for-loop_0
             (|#%name|
              for-loop
              (lambda (i_0)
                (begin
                  (if i_0
                    (let ((id_0 (hash-iterate-key exports_0 i_0)))
                      (begin
                        (hash-set! mutated_0 id_0 'undefined)
                        (for-loop_0 (hash-iterate-next exports_0 i_0))))
                    (values)))))))
           (for-loop_0 (hash-iterate-first exports_0))))
        (void)
        (begin
          (letrec*
           ((for-loop_0
             (|#%name|
              for-loop
              (lambda (lst_0)
                (begin
                  (if (pair? lst_0)
                    (let ((form_0 (unsafe-car lst_0)))
                      (let ((rest_0 (unsafe-cdr lst_0)))
                        (begin
                          (let ((hd_0
                                 (let ((p_0 (unwrap form_0)))
                                   (if (pair? p_0) (unwrap (car p_0)) #f))))
                            (if (if (eq? 'define-values hd_0)
                                  (let ((a_0 (cdr (unwrap form_0))))
                                    (let ((p_0 (unwrap a_0)))
                                      (if (pair? p_0)
                                        (if (let ((a_1 (car p_0)))
                                              (wrap-list? a_1))
                                          (let ((a_1 (cdr p_0)))
                                            (let ((p_1 (unwrap a_1)))
                                              (if (pair? p_1)
                                                (let ((a_2 (cdr p_1)))
                                                  (let ((app_0 (unwrap '())))
                                                    (eq? app_0 (unwrap a_2))))
                                                #f)))
                                          #f)
                                        #f)))
                                  #f)
                              (call-with-values
                               (lambda ()
                                 (let ((d_0 (cdr (unwrap form_0))))
                                   (let ((p_0 (unwrap d_0)))
                                     (let ((ids_0
                                            (let ((a_0 (car p_0)))
                                              (unwrap-list a_0))))
                                       (let ((rhs_0
                                              (let ((d_1 (cdr p_0)))
                                                (let ((a_0 (car (unwrap d_1))))
                                                  a_0))))
                                         (let ((ids_1 ids_0))
                                           (values ids_1 rhs_0)))))))
                               (case-lambda
                                ((ids_0 rhs_0)
                                 (begin
                                   (begin
                                     (letrec*
                                      ((for-loop_1
                                        (|#%name|
                                         for-loop
                                         (lambda (lst_1)
                                           (begin
                                             (if (pair? lst_1)
                                               (let ((id_0 (unsafe-car lst_1)))
                                                 (let ((rest_1
                                                        (unsafe-cdr lst_1)))
                                                   (begin
                                                     (let ((app_0
                                                            (unwrap id_0)))
                                                       (hash-set!
                                                        mutated_0
                                                        app_0
                                                        (if enforce-constant?_0
                                                          'not-ready
                                                          'set!ed-too-early)))
                                                     (for-loop_1 rest_1))))
                                               (values)))))))
                                      (for-loop_1 ids_0)))
                                   (void)))
                                (args
                                 (raise-binding-result-arity-error 2 args))))
                              (void)))
                          (for-loop_0 rest_0))))
                    (values)))))))
           (for-loop_0 l_0)))
        (void)
        (begin
          (letrec*
           ((for-loop_0
             (|#%name|
              for-loop
              (lambda (prev-knowns_0 lst_0)
                (begin
                  (if (pair? lst_0)
                    (let ((form_0 (unsafe-car lst_0)))
                      (let ((rest_0 (unsafe-cdr lst_0)))
                        (let ((prev-knowns_1
                               (let ((prev-knowns_1
                                      (call-with-values
                                       (lambda ()
                                         (find-definitions.1
                                          #f
                                          hash2610
                                          form_0
                                          prim-knowns_0
                                          prev-knowns_0
                                          imports_0
                                          mutated_0
                                          simples_0
                                          unsafe-mode?_0))
                                       (case-lambda
                                        ((knowns_1 info_0)
                                         (begin
                                           (let ((hd_0
                                                  (let ((p_0 (unwrap form_0)))
                                                    (if (pair? p_0)
                                                      (unwrap (car p_0))
                                                      #f))))
                                             (if (if (eq? 'define-values hd_0)
                                                   (let ((a_0
                                                          (cdr
                                                           (unwrap form_0))))
                                                     (let ((p_0 (unwrap a_0)))
                                                       (if (pair? p_0)
                                                         (if (let ((a_1
                                                                    (car p_0)))
                                                               (wrap-list?
                                                                a_1))
                                                           (let ((a_1
                                                                  (cdr p_0)))
                                                             (let ((p_1
                                                                    (unwrap
                                                                     a_1)))
                                                               (if (pair? p_1)
                                                                 (let ((a_2
                                                                        (cdr
                                                                         p_1)))
                                                                   (let ((app_0
                                                                          (unwrap
                                                                           '())))
                                                                     (eq?
                                                                      app_0
                                                                      (unwrap
                                                                       a_2))))
                                                                 #f)))
                                                           #f)
                                                         #f)))
                                                   #f)
                                               (call-with-values
                                                (lambda ()
                                                  (let ((d_0
                                                         (cdr
                                                          (unwrap form_0))))
                                                    (let ((p_0 (unwrap d_0)))
                                                      (let ((ids_0
                                                             (let ((a_0
                                                                    (car p_0)))
                                                               (unwrap-list
                                                                a_0))))
                                                        (let ((rhs_0
                                                               (let ((d_1
                                                                      (cdr
                                                                       p_0)))
                                                                 (let ((a_0
                                                                        (car
                                                                         (unwrap
                                                                          d_1))))
                                                                   a_0))))
                                                          (let ((ids_1 ids_0))
                                                            (values
                                                             ids_1
                                                             rhs_0)))))))
                                                (case-lambda
                                                 ((ids_0 rhs_0)
                                                  (begin
                                                    (if info_0
                                                      (begin
                                                        (let ((lst_1
                                                               (struct-type-info-rest
                                                                info_0)))
                                                          (begin
                                                            (letrec*
                                                             ((for-loop_1
                                                               (|#%name|
                                                                for-loop
                                                                (lambda (lst_2
                                                                         pos_0)
                                                                  (begin
                                                                    (if (if (pair?
                                                                             lst_2)
                                                                          #t
                                                                          #f)
                                                                      (let ((e_0
                                                                             (unsafe-car
                                                                              lst_2)))
                                                                        (let ((rest_1
                                                                               (unsafe-cdr
                                                                                lst_2)))
                                                                          (begin
                                                                            (if (if (=
                                                                                     pos_0
                                                                                     0)
                                                                                  (pure-properties-list?
                                                                                   e_0
                                                                                   prim-knowns_0
                                                                                   knowns_1
                                                                                   imports_0
                                                                                   mutated_0
                                                                                   simples_0)
                                                                                  #f)
                                                                              (void)
                                                                              (find-mutated!
                                                                               e_0
                                                                               ids_0
                                                                               prim-knowns_0
                                                                               knowns_1
                                                                               imports_0
                                                                               mutated_0
                                                                               simples_0))
                                                                            (for-loop_1
                                                                             rest_1
                                                                             (+
                                                                              pos_0
                                                                              1)))))
                                                                      (values)))))))
                                                             (for-loop_1
                                                              lst_1
                                                              0))))
                                                        (void))
                                                      (find-mutated!
                                                       rhs_0
                                                       ids_0
                                                       prim-knowns_0
                                                       knowns_1
                                                       imports_0
                                                       mutated_0
                                                       simples_0))
                                                    (begin
                                                      (letrec*
                                                       ((for-loop_1
                                                         (|#%name|
                                                          for-loop
                                                          (lambda (lst_1)
                                                            (begin
                                                              (if (pair? lst_1)
                                                                (let ((id_0
                                                                       (unsafe-car
                                                                        lst_1)))
                                                                  (let ((rest_1
                                                                         (unsafe-cdr
                                                                          lst_1)))
                                                                    (begin
                                                                      (let ((id_1
                                                                             (unwrap
                                                                              id_0)))
                                                                        (if (eq?
                                                                             'not-ready
                                                                             (hash-ref
                                                                              mutated_0
                                                                              id_1
                                                                              #f))
                                                                          (hash-remove!
                                                                           mutated_0
                                                                           id_1)
                                                                          (void)))
                                                                      (for-loop_1
                                                                       rest_1))))
                                                                (values)))))))
                                                       (for-loop_1 ids_0)))
                                                    (void)))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   2
                                                   args))))
                                               (find-mutated!
                                                form_0
                                                #f
                                                prim-knowns_0
                                                knowns_1
                                                imports_0
                                                mutated_0
                                                simples_0)))
                                           knowns_1))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))))
                                 (values prev-knowns_1))))
                          (for-loop_0 prev-knowns_1 rest_0))))
                    prev-knowns_0))))))
           (for-loop_0 knowns_0 l_0)))
        (begin
          (letrec*
           ((for-loop_0
             (|#%name|
              for-loop
              (lambda (lst_0)
                (begin
                  (if (pair? lst_0)
                    (let ((form_0 (unsafe-car lst_0)))
                      (let ((rest_0 (unsafe-cdr lst_0)))
                        (begin
                          (let ((hd_0
                                 (let ((p_0 (unwrap form_0)))
                                   (if (pair? p_0) (unwrap (car p_0)) #f))))
                            (if (if (eq? 'define-values hd_0)
                                  (let ((a_0 (cdr (unwrap form_0))))
                                    (let ((p_0 (unwrap a_0)))
                                      (if (pair? p_0)
                                        (if (let ((a_1 (car p_0)))
                                              (wrap-list? a_1))
                                          (let ((a_1 (cdr p_0)))
                                            (let ((p_1 (unwrap a_1)))
                                              (if (pair? p_1)
                                                (let ((a_2 (cdr p_1)))
                                                  (let ((app_0 (unwrap '())))
                                                    (eq? app_0 (unwrap a_2))))
                                                #f)))
                                          #f)
                                        #f)))
                                  #f)
                              (call-with-values
                               (lambda ()
                                 (let ((d_0 (cdr (unwrap form_0))))
                                   (let ((p_0 (unwrap d_0)))
                                     (let ((ids_0
                                            (let ((a_0 (car p_0)))
                                              (unwrap-list a_0))))
                                       (let ((rhs_0
                                              (let ((d_1 (cdr p_0)))
                                                (let ((a_0 (car (unwrap d_1))))
                                                  a_0))))
                                         (let ((ids_1 ids_0))
                                           (values ids_1 rhs_0)))))))
                               (case-lambda
                                ((ids_0 rhs_0)
                                 (begin
                                   (begin
                                     (letrec*
                                      ((for-loop_1
                                        (|#%name|
                                         for-loop
                                         (lambda (lst_1)
                                           (begin
                                             (if (pair? lst_1)
                                               (let ((id_0 (unsafe-car lst_1)))
                                                 (let ((rest_1
                                                        (unsafe-cdr lst_1)))
                                                   (begin
                                                     (let ((id_1
                                                            (unwrap id_0)))
                                                       (let ((state_0
                                                              (hash-ref
                                                               mutated_0
                                                               id_1
                                                               #f)))
                                                         (if (procedure?
                                                              state_0)
                                                           (begin
                                                             (hash-remove!
                                                              mutated_0
                                                              id_1)
                                                             (|#%app| state_0))
                                                           (void))))
                                                     (for-loop_1 rest_1))))
                                               (values)))))))
                                      (for-loop_1 ids_0)))
                                   (void)))
                                (args
                                 (raise-binding-result-arity-error 2 args))))
                              (void)))
                          (for-loop_0 rest_0))))
                    (values)))))))
           (for-loop_0 l_0)))
        (void)
        mutated_0))))
(define find-mutated!
  (letrec ((add-too-early-name!_0
            (|#%name|
             add-too-early-name!
             (lambda (id_0 mutated_0 state_0 u-id_0)
               (begin
                 (let ((c2_0
                        (if (eq? 'too-early state_0)
                          (wrap-property id_0 'undefined-error-name)
                          #f)))
                   (if c2_0
                     (hash-set! mutated_0 u-id_0 (too-early1.1 c2_0 #f))
                     (let ((c1_0
                            (if (eq? 'set!ed-too-early state_0)
                              (wrap-property id_0 'undefined-error-name)
                              #f)))
                       (if c1_0
                         (hash-set! mutated_0 u-id_0 (too-early1.1 c1_0 #t))
                         (void)))))))))
           (delay!_0
            (|#%name|
             delay!
             (lambda (mutated_0 ids_0 thunk_0)
               (begin
                 (let ((done?_0 #f))
                   (let ((force_0
                          (|#%name|
                           force
                           (lambda ()
                             (begin
                               (if done?_0
                                 (void)
                                 (begin
                                   (set! done?_0 #t)
                                   (|#%app| thunk_0))))))))
                     (begin
                       (begin
                         (letrec*
                          ((for-loop_0
                            (|#%name|
                             for-loop
                             (lambda (lst_0)
                               (begin
                                 (if (pair? lst_0)
                                   (let ((id_0 (unsafe-car lst_0)))
                                     (let ((rest_0 (unsafe-cdr lst_0)))
                                       (begin
                                         (let ((id_1 (unwrap id_0)))
                                           (let ((m_0
                                                  (hash-ref
                                                   mutated_0
                                                   id_1
                                                   'not-ready)))
                                             (if (eq? 'not-ready m_0)
                                               (hash-set!
                                                mutated_0
                                                id_1
                                                force_0)
                                               (force_0))))
                                         (for-loop_0 rest_0))))
                                   (values)))))))
                          (for-loop_0 ids_0)))
                       (void))))))))
           (find-mutated!*_0
            (|#%name|
             find-mutated!*
             (lambda (imports_0
                      knowns_0
                      mutated_0
                      prim-knowns_0
                      simples_0
                      l_0
                      ids_0)
               (begin
                 (letrec*
                  ((loop_0
                    (|#%name|
                     loop
                     (lambda (l_1)
                       (begin
                         (if (null? l_1)
                           (void)
                           (if (null? (cdr l_1))
                             (find-mutated!_0
                              imports_0
                              knowns_0
                              mutated_0
                              prim-knowns_0
                              simples_0
                              (car l_1)
                              ids_0)
                             (begin
                               (find-mutated!_0
                                imports_0
                                knowns_0
                                mutated_0
                                prim-knowns_0
                                simples_0
                                (car l_1)
                                #f)
                               (loop_0 (cdr l_1))))))))))
                  (loop_0 l_0))))))
           (find-mutated!_0
            (|#%name|
             find-mutated!
             (lambda (imports_0
                      knowns_0
                      mutated_0
                      prim-knowns_0
                      simples_0
                      v_0
                      ids_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap v_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'lambda hd_0)
                         (let ((a_0 (cdr (unwrap v_0))))
                           (let ((p_0 (unwrap a_0)))
                             (if (pair? p_0)
                               (let ((a_1 (cdr p_0))) (wrap-list? a_1))
                               #f)))
                         #f)
                     (call-with-values
                      (lambda ()
                        (let ((d_0 (cdr (unwrap v_0))))
                          (let ((p_0 (unwrap d_0)))
                            (let ((formals_0 (let ((a_0 (car p_0))) a_0)))
                              (let ((body_0
                                     (let ((d_1 (cdr p_0)))
                                       (unwrap-list d_1))))
                                (let ((formals_1 formals_0))
                                  (values formals_1 body_0)))))))
                      (case-lambda
                       ((formals_0 body_0)
                        (if ids_0
                          (delay!_0
                           mutated_0
                           ids_0
                           (lambda ()
                             (find-mutated!*_0
                              imports_0
                              knowns_0
                              mutated_0
                              prim-knowns_0
                              simples_0
                              body_0
                              #f)))
                          (find-mutated!*_0
                           imports_0
                           knowns_0
                           mutated_0
                           prim-knowns_0
                           simples_0
                           body_0
                           #f)))
                       (args (raise-binding-result-arity-error 2 args))))
                     (if (if (eq? 'case-lambda hd_0)
                           (let ((a_0 (cdr (unwrap v_0))))
                             (if (wrap-list? a_0)
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (result_0 lst_0)
                                       (begin
                                         (if (not (null? (unwrap lst_0)))
                                           (let ((v_1
                                                  (if (pair? (unwrap lst_0))
                                                    (wrap-car lst_0)
                                                    lst_0)))
                                             (let ((rest_0
                                                    (if (pair? (unwrap lst_0))
                                                      (wrap-cdr lst_0)
                                                      null)))
                                               (let ((v_2 v_1))
                                                 (let ((result_1
                                                        (let ((result_1
                                                               (let ((p_0
                                                                      (unwrap
                                                                       v_2)))
                                                                 (if (pair?
                                                                      p_0)
                                                                   (let ((a_1
                                                                          (cdr
                                                                           p_0)))
                                                                     (wrap-list?
                                                                      a_1))
                                                                   #f))))
                                                          (values result_1))))
                                                   (if (if (not
                                                            (let ((x_0
                                                                   (list v_2)))
                                                              (not result_1)))
                                                         #t
                                                         #f)
                                                     (for-loop_0
                                                      result_1
                                                      rest_0)
                                                     result_1)))))
                                           result_0))))))
                                  (for-loop_0 #t a_0)))
                               #f))
                           #f)
                       (call-with-values
                        (lambda ()
                          (let ((d_0 (cdr (unwrap v_0))))
                            (call-with-values
                             (lambda ()
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (formalss_0 bodys_0 lst_0)
                                       (begin
                                         (if (not (null? (unwrap lst_0)))
                                           (let ((v_1
                                                  (if (pair? (unwrap lst_0))
                                                    (wrap-car lst_0)
                                                    lst_0)))
                                             (let ((rest_0
                                                    (if (pair? (unwrap lst_0))
                                                      (wrap-cdr lst_0)
                                                      null)))
                                               (let ((v_2 v_1))
                                                 (call-with-values
                                                  (lambda ()
                                                    (call-with-values
                                                     (lambda ()
                                                       (call-with-values
                                                        (lambda ()
                                                          (let ((p_0
                                                                 (unwrap v_2)))
                                                            (let ((formalss_1
                                                                   (let ((a_0
                                                                          (car
                                                                           p_0)))
                                                                     a_0)))
                                                              (let ((bodys_1
                                                                     (let ((d_1
                                                                            (cdr
                                                                             p_0)))
                                                                       (unwrap-list
                                                                        d_1))))
                                                                (let ((formalss_2
                                                                       formalss_1))
                                                                  (values
                                                                   formalss_2
                                                                   bodys_1))))))
                                                        (case-lambda
                                                         ((formalss9_0
                                                           bodys10_0)
                                                          (values
                                                           (cons
                                                            formalss9_0
                                                            formalss_0)
                                                           (cons
                                                            bodys10_0
                                                            bodys_0)))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args)))))
                                                     (case-lambda
                                                      ((formalss_1 bodys_1)
                                                       (values
                                                        formalss_1
                                                        bodys_1))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args)))))
                                                  (case-lambda
                                                   ((formalss_1 bodys_1)
                                                    (for-loop_0
                                                     formalss_1
                                                     bodys_1
                                                     rest_0))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args)))))))
                                           (values formalss_0 bodys_0)))))))
                                  (for-loop_0 null null d_0))))
                             (case-lambda
                              ((formalss_0 bodys_0)
                               (let ((app_0 (reverse$1 formalss_0)))
                                 (values app_0 (reverse$1 bodys_0))))
                              (args
                               (raise-binding-result-arity-error 2 args))))))
                        (case-lambda
                         ((formalss_0 bodys_0)
                          (if ids_0
                            (delay!_0
                             mutated_0
                             ids_0
                             (lambda ()
                               (begin
                                 (begin
                                   (letrec*
                                    ((for-loop_0
                                      (|#%name|
                                       for-loop
                                       (lambda (lst_0)
                                         (begin
                                           (if (pair? lst_0)
                                             (let ((body_0 (unsafe-car lst_0)))
                                               (let ((rest_0
                                                      (unsafe-cdr lst_0)))
                                                 (begin
                                                   (find-mutated!*_0
                                                    imports_0
                                                    knowns_0
                                                    mutated_0
                                                    prim-knowns_0
                                                    simples_0
                                                    body_0
                                                    #f)
                                                   (for-loop_0 rest_0))))
                                             (values)))))))
                                    (for-loop_0 bodys_0)))
                                 (void))))
                            (begin
                              (begin
                                (letrec*
                                 ((for-loop_0
                                   (|#%name|
                                    for-loop
                                    (lambda (lst_0)
                                      (begin
                                        (if (pair? lst_0)
                                          (let ((body_0 (unsafe-car lst_0)))
                                            (let ((rest_0 (unsafe-cdr lst_0)))
                                              (begin
                                                (find-mutated!*_0
                                                 imports_0
                                                 knowns_0
                                                 mutated_0
                                                 prim-knowns_0
                                                 simples_0
                                                 body_0
                                                 #f)
                                                (for-loop_0 rest_0))))
                                          (values)))))))
                                 (for-loop_0 bodys_0)))
                              (void))))
                         (args (raise-binding-result-arity-error 2 args))))
                       (if (if (eq? 'quote hd_0)
                             (let ((a_0 (cdr (unwrap v_0))))
                               (let ((p_0 (unwrap a_0)))
                                 (if (pair? p_0)
                                   (let ((a_1 (cdr p_0)))
                                     (let ((app_0 (unwrap '())))
                                       (eq? app_0 (unwrap a_1))))
                                   #f)))
                             #f)
                         (void)
                         (if (if (eq? 'let-values hd_0)
                               (let ((a_0 (cdr (unwrap v_0))))
                                 (let ((p_0 (unwrap a_0)))
                                   (if (pair? p_0)
                                     (if (let ((a_1 (car p_0)))
                                           (if (wrap-list? a_1)
                                             (begin
                                               (letrec*
                                                ((for-loop_0
                                                  (|#%name|
                                                   for-loop
                                                   (lambda (result_0 lst_0)
                                                     (begin
                                                       (if (not
                                                            (null?
                                                             (unwrap lst_0)))
                                                         (let ((v_1
                                                                (if (pair?
                                                                     (unwrap
                                                                      lst_0))
                                                                  (wrap-car
                                                                   lst_0)
                                                                  lst_0)))
                                                           (let ((rest_0
                                                                  (if (pair?
                                                                       (unwrap
                                                                        lst_0))
                                                                    (wrap-cdr
                                                                     lst_0)
                                                                    null)))
                                                             (let ((v_2 v_1))
                                                               (let ((result_1
                                                                      (let ((result_1
                                                                             (let ((p_1
                                                                                    (unwrap
                                                                                     v_2)))
                                                                               (if (pair?
                                                                                    p_1)
                                                                                 (let ((a_2
                                                                                        (cdr
                                                                                         p_1)))
                                                                                   (let ((p_2
                                                                                          (unwrap
                                                                                           a_2)))
                                                                                     (if (pair?
                                                                                          p_2)
                                                                                       (let ((a_3
                                                                                              (cdr
                                                                                               p_2)))
                                                                                         (let ((app_0
                                                                                                (unwrap
                                                                                                 '())))
                                                                                           (eq?
                                                                                            app_0
                                                                                            (unwrap
                                                                                             a_3))))
                                                                                       #f)))
                                                                                 #f))))
                                                                        (values
                                                                         result_1))))
                                                                 (if (if (not
                                                                          (let ((x_0
                                                                                 (list
                                                                                  v_2)))
                                                                            (not
                                                                             result_1)))
                                                                       #t
                                                                       #f)
                                                                   (for-loop_0
                                                                    result_1
                                                                    rest_0)
                                                                   result_1)))))
                                                         result_0))))))
                                                (for-loop_0 #t a_1)))
                                             #f))
                                       (let ((a_1 (cdr p_0))) (wrap-list? a_1))
                                       #f)
                                     #f)))
                               #f)
                           (call-with-values
                            (lambda ()
                              (let ((d_0 (cdr (unwrap v_0))))
                                (let ((p_0 (unwrap d_0)))
                                  (call-with-values
                                   (lambda ()
                                     (let ((a_0 (car p_0)))
                                       (call-with-values
                                        (lambda ()
                                          (begin
                                            (letrec*
                                             ((for-loop_0
                                               (|#%name|
                                                for-loop
                                                (lambda (idss_0 rhss_0 lst_0)
                                                  (begin
                                                    (if (not
                                                         (null?
                                                          (unwrap lst_0)))
                                                      (let ((v_1
                                                             (if (pair?
                                                                  (unwrap
                                                                   lst_0))
                                                               (wrap-car lst_0)
                                                               lst_0)))
                                                        (let ((rest_0
                                                               (if (pair?
                                                                    (unwrap
                                                                     lst_0))
                                                                 (wrap-cdr
                                                                  lst_0)
                                                                 null)))
                                                          (let ((v_2 v_1))
                                                            (call-with-values
                                                             (lambda ()
                                                               (call-with-values
                                                                (lambda ()
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (let ((p_1
                                                                            (unwrap
                                                                             v_2)))
                                                                       (let ((idss_1
                                                                              (let ((a_1
                                                                                     (car
                                                                                      p_1)))
                                                                                a_1)))
                                                                         (let ((rhss_1
                                                                                (let ((d_1
                                                                                       (cdr
                                                                                        p_1)))
                                                                                  (let ((a_1
                                                                                         (car
                                                                                          (unwrap
                                                                                           d_1))))
                                                                                    a_1))))
                                                                           (let ((idss_2
                                                                                  idss_1))
                                                                             (values
                                                                              idss_2
                                                                              rhss_1))))))
                                                                   (case-lambda
                                                                    ((idss11_0
                                                                      rhss12_0)
                                                                     (values
                                                                      (cons
                                                                       idss11_0
                                                                       idss_0)
                                                                      (cons
                                                                       rhss12_0
                                                                       rhss_0)))
                                                                    (args
                                                                     (raise-binding-result-arity-error
                                                                      2
                                                                      args)))))
                                                                (case-lambda
                                                                 ((idss_1
                                                                   rhss_1)
                                                                  (values
                                                                   idss_1
                                                                   rhss_1))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   2
                                                                   args)))))
                                                             (case-lambda
                                                              ((idss_1 rhss_1)
                                                               (for-loop_0
                                                                idss_1
                                                                rhss_1
                                                                rest_0))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                2
                                                                args)))))))
                                                      (values
                                                       idss_0
                                                       rhss_0)))))))
                                             (for-loop_0 null null a_0))))
                                        (case-lambda
                                         ((idss_0 rhss_0)
                                          (let ((app_0 (reverse$1 idss_0)))
                                            (values app_0 (reverse$1 rhss_0))))
                                         (args
                                          (raise-binding-result-arity-error
                                           2
                                           args))))))
                                   (case-lambda
                                    ((idss_0 rhss_0)
                                     (let ((bodys_0
                                            (let ((d_1 (cdr p_0)))
                                              (unwrap-list d_1))))
                                       (let ((idss_1 idss_0) (rhss_1 rhss_0))
                                         (values idss_1 rhss_1 bodys_0))))
                                    (args
                                     (raise-binding-result-arity-error
                                      2
                                      args)))))))
                            (case-lambda
                             ((idss_0 rhss_0 bodys_0)
                              (begin
                                (begin
                                  (letrec*
                                   ((for-loop_0
                                     (|#%name|
                                      for-loop
                                      (lambda (lst_0 lst_1)
                                        (begin
                                          (if (if (pair? lst_0)
                                                (pair? lst_1)
                                                #f)
                                            (let ((ids_1 (unsafe-car lst_0)))
                                              (let ((rest_0
                                                     (unsafe-cdr lst_0)))
                                                (let ((rhs_0
                                                       (unsafe-car lst_1)))
                                                  (let ((rest_1
                                                         (unsafe-cdr lst_1)))
                                                    (begin
                                                      (find-mutated!_0
                                                       imports_0
                                                       knowns_0
                                                       mutated_0
                                                       prim-knowns_0
                                                       simples_0
                                                       rhs_0
                                                       ids_1)
                                                      (for-loop_0
                                                       rest_0
                                                       rest_1))))))
                                            (values)))))))
                                   (for-loop_0 idss_0 rhss_0)))
                                (void)
                                (find-mutated!*_0
                                 imports_0
                                 knowns_0
                                 mutated_0
                                 prim-knowns_0
                                 simples_0
                                 bodys_0
                                 ids_0)))
                             (args (raise-binding-result-arity-error 3 args))))
                           (if (if (eq? 'letrec-values hd_0)
                                 (let ((a_0 (cdr (unwrap v_0))))
                                   (let ((p_0 (unwrap a_0)))
                                     (if (pair? p_0)
                                       (if (let ((a_1 (car p_0)))
                                             (if (wrap-list? a_1)
                                               (begin
                                                 (letrec*
                                                  ((for-loop_0
                                                    (|#%name|
                                                     for-loop
                                                     (lambda (result_0 lst_0)
                                                       (begin
                                                         (if (not
                                                              (null?
                                                               (unwrap lst_0)))
                                                           (let ((v_1
                                                                  (if (pair?
                                                                       (unwrap
                                                                        lst_0))
                                                                    (wrap-car
                                                                     lst_0)
                                                                    lst_0)))
                                                             (let ((rest_0
                                                                    (if (pair?
                                                                         (unwrap
                                                                          lst_0))
                                                                      (wrap-cdr
                                                                       lst_0)
                                                                      null)))
                                                               (let ((v_2 v_1))
                                                                 (let ((result_1
                                                                        (let ((result_1
                                                                               (let ((p_1
                                                                                      (unwrap
                                                                                       v_2)))
                                                                                 (if (pair?
                                                                                      p_1)
                                                                                   (let ((a_2
                                                                                          (cdr
                                                                                           p_1)))
                                                                                     (let ((p_2
                                                                                            (unwrap
                                                                                             a_2)))
                                                                                       (if (pair?
                                                                                            p_2)
                                                                                         (let ((a_3
                                                                                                (cdr
                                                                                                 p_2)))
                                                                                           (let ((app_0
                                                                                                  (unwrap
                                                                                                   '())))
                                                                                             (eq?
                                                                                              app_0
                                                                                              (unwrap
                                                                                               a_3))))
                                                                                         #f)))
                                                                                   #f))))
                                                                          (values
                                                                           result_1))))
                                                                   (if (if (not
                                                                            (let ((x_0
                                                                                   (list
                                                                                    v_2)))
                                                                              (not
                                                                               result_1)))
                                                                         #t
                                                                         #f)
                                                                     (for-loop_0
                                                                      result_1
                                                                      rest_0)
                                                                     result_1)))))
                                                           result_0))))))
                                                  (for-loop_0 #t a_1)))
                                               #f))
                                         (let ((a_1 (cdr p_0)))
                                           (wrap-list? a_1))
                                         #f)
                                       #f)))
                                 #f)
                             (call-with-values
                              (lambda ()
                                (let ((d_0 (cdr (unwrap v_0))))
                                  (let ((p_0 (unwrap d_0)))
                                    (call-with-values
                                     (lambda ()
                                       (let ((a_0 (car p_0)))
                                         (call-with-values
                                          (lambda ()
                                            (begin
                                              (letrec*
                                               ((for-loop_0
                                                 (|#%name|
                                                  for-loop
                                                  (lambda (idss_0 rhss_0 lst_0)
                                                    (begin
                                                      (if (not
                                                           (null?
                                                            (unwrap lst_0)))
                                                        (let ((v_1
                                                               (if (pair?
                                                                    (unwrap
                                                                     lst_0))
                                                                 (wrap-car
                                                                  lst_0)
                                                                 lst_0)))
                                                          (let ((rest_0
                                                                 (if (pair?
                                                                      (unwrap
                                                                       lst_0))
                                                                   (wrap-cdr
                                                                    lst_0)
                                                                   null)))
                                                            (let ((v_2 v_1))
                                                              (call-with-values
                                                               (lambda ()
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (let ((p_1
                                                                              (unwrap
                                                                               v_2)))
                                                                         (let ((idss_1
                                                                                (let ((a_1
                                                                                       (car
                                                                                        p_1)))
                                                                                  a_1)))
                                                                           (let ((rhss_1
                                                                                  (let ((d_1
                                                                                         (cdr
                                                                                          p_1)))
                                                                                    (let ((a_1
                                                                                           (car
                                                                                            (unwrap
                                                                                             d_1))))
                                                                                      a_1))))
                                                                             (let ((idss_2
                                                                                    idss_1))
                                                                               (values
                                                                                idss_2
                                                                                rhss_1))))))
                                                                     (case-lambda
                                                                      ((idss13_0
                                                                        rhss14_0)
                                                                       (values
                                                                        (cons
                                                                         idss13_0
                                                                         idss_0)
                                                                        (cons
                                                                         rhss14_0
                                                                         rhss_0)))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args)))))
                                                                  (case-lambda
                                                                   ((idss_1
                                                                     rhss_1)
                                                                    (values
                                                                     idss_1
                                                                     rhss_1))
                                                                   (args
                                                                    (raise-binding-result-arity-error
                                                                     2
                                                                     args)))))
                                                               (case-lambda
                                                                ((idss_1
                                                                  rhss_1)
                                                                 (for-loop_0
                                                                  idss_1
                                                                  rhss_1
                                                                  rest_0))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))))
                                                        (values
                                                         idss_0
                                                         rhss_0)))))))
                                               (for-loop_0 null null a_0))))
                                          (case-lambda
                                           ((idss_0 rhss_0)
                                            (let ((app_0 (reverse$1 idss_0)))
                                              (values
                                               app_0
                                               (reverse$1 rhss_0))))
                                           (args
                                            (raise-binding-result-arity-error
                                             2
                                             args))))))
                                     (case-lambda
                                      ((idss_0 rhss_0)
                                       (let ((bodys_0
                                              (let ((d_1 (cdr p_0)))
                                                (unwrap-list d_1))))
                                         (let ((idss_1 idss_0) (rhss_1 rhss_0))
                                           (values idss_1 rhss_1 bodys_0))))
                                      (args
                                       (raise-binding-result-arity-error
                                        2
                                        args)))))))
                              (case-lambda
                               ((idss_0 rhss_0 bodys_0)
                                (if (letrec-splitable-values-binding?
                                     idss_0
                                     rhss_0)
                                  (find-mutated!_0
                                   imports_0
                                   knowns_0
                                   mutated_0
                                   prim-knowns_0
                                   simples_0
                                   (letrec-split-values-binding
                                    idss_0
                                    rhss_0
                                    bodys_0)
                                   ids_0)
                                  (begin
                                    (begin
                                      (letrec*
                                       ((for-loop_0
                                         (|#%name|
                                          for-loop
                                          (lambda (lst_0)
                                            (begin
                                              (if (pair? lst_0)
                                                (let ((ids_1
                                                       (unsafe-car lst_0)))
                                                  (let ((rest_0
                                                         (unsafe-cdr lst_0)))
                                                    (call-with-values
                                                     (lambda ()
                                                       (begin
                                                         (letrec*
                                                          ((for-loop_1
                                                            (|#%name|
                                                             for-loop
                                                             (lambda (lst_1)
                                                               (begin
                                                                 (if (not
                                                                      (null?
                                                                       (unwrap
                                                                        lst_1)))
                                                                   (let ((id_0
                                                                          (if (pair?
                                                                               (unwrap
                                                                                lst_1))
                                                                            (wrap-car
                                                                             lst_1)
                                                                            lst_1)))
                                                                     (let ((rest_1
                                                                            (if (pair?
                                                                                 (unwrap
                                                                                  lst_1))
                                                                              (wrap-cdr
                                                                               lst_1)
                                                                              null)))
                                                                       (let ((id_1
                                                                              id_0))
                                                                         (begin
                                                                           (hash-set!
                                                                            mutated_0
                                                                            (unwrap
                                                                             id_1)
                                                                            'not-ready)
                                                                           (for-loop_1
                                                                            rest_1)))))
                                                                   (values)))))))
                                                          (for-loop_1 ids_1))))
                                                     (case-lambda
                                                      (() (for-loop_0 rest_0))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        0
                                                        args))))))
                                                (values)))))))
                                       (for-loop_0 idss_0)))
                                    (void)
                                    (begin
                                      (letrec*
                                       ((for-loop_0
                                         (|#%name|
                                          for-loop
                                          (lambda (maybe-cc?_0 lst_0 lst_1)
                                            (begin
                                              (if (if (pair? lst_0)
                                                    (pair? lst_1)
                                                    #f)
                                                (let ((ids_1
                                                       (unsafe-car lst_0)))
                                                  (let ((rest_0
                                                         (unsafe-cdr lst_0)))
                                                    (let ((rhs_0
                                                           (unsafe-car lst_1)))
                                                      (let ((rest_1
                                                             (unsafe-cdr
                                                              lst_1)))
                                                        (let ((maybe-cc?_1
                                                               (let ((maybe-cc?_1
                                                                      (begin
                                                                        (find-mutated!_0
                                                                         imports_0
                                                                         knowns_0
                                                                         mutated_0
                                                                         prim-knowns_0
                                                                         simples_0
                                                                         rhs_0
                                                                         (unwrap-list
                                                                          ids_1))
                                                                        (let ((new-maybe-cc?_0
                                                                               (if maybe-cc?_0
                                                                                 maybe-cc?_0
                                                                                 (not
                                                                                  (let ((temp22_0
                                                                                         (length
                                                                                          ids_1)))
                                                                                    (simple?.1
                                                                                     #f
                                                                                     temp22_0
                                                                                     rhs_0
                                                                                     prim-knowns_0
                                                                                     knowns_0
                                                                                     imports_0
                                                                                     mutated_0
                                                                                     simples_0))))))
                                                                          (begin
                                                                            (begin
                                                                              (letrec*
                                                                               ((for-loop_1
                                                                                 (|#%name|
                                                                                  for-loop
                                                                                  (lambda (lst_2)
                                                                                    (begin
                                                                                      (if (not
                                                                                           (null?
                                                                                            (unwrap
                                                                                             lst_2)))
                                                                                        (let ((id_0
                                                                                               (if (pair?
                                                                                                    (unwrap
                                                                                                     lst_2))
                                                                                                 (wrap-car
                                                                                                  lst_2)
                                                                                                 lst_2)))
                                                                                          (let ((rest_2
                                                                                                 (if (pair?
                                                                                                      (unwrap
                                                                                                       lst_2))
                                                                                                   (wrap-cdr
                                                                                                    lst_2)
                                                                                                   null)))
                                                                                            (let ((id_1
                                                                                                   id_0))
                                                                                              (begin
                                                                                                (let ((u-id_0
                                                                                                       (unwrap
                                                                                                        id_1)))
                                                                                                  (let ((state_0
                                                                                                         (hash-ref
                                                                                                          mutated_0
                                                                                                          u-id_0)))
                                                                                                    (if new-maybe-cc?_0
                                                                                                      (begin
                                                                                                        (if (let ((or-part_0
                                                                                                                   (eq?
                                                                                                                    'not-ready
                                                                                                                    state_0)))
                                                                                                              (if or-part_0
                                                                                                                or-part_0
                                                                                                                (procedure?
                                                                                                                 state_0)))
                                                                                                          (hash-set!
                                                                                                           mutated_0
                                                                                                           u-id_0
                                                                                                           'implicitly-set!ed)
                                                                                                          (add-too-early-name!_0
                                                                                                           id_1
                                                                                                           mutated_0
                                                                                                           state_0
                                                                                                           u-id_0))
                                                                                                        (if (procedure?
                                                                                                             state_0)
                                                                                                          (|#%app|
                                                                                                           state_0)
                                                                                                          (void)))
                                                                                                      (if (eq?
                                                                                                           'not-ready
                                                                                                           state_0)
                                                                                                        (hash-remove!
                                                                                                         mutated_0
                                                                                                         u-id_0)
                                                                                                        (add-too-early-name!_0
                                                                                                         id_1
                                                                                                         mutated_0
                                                                                                         state_0
                                                                                                         u-id_0)))))
                                                                                                (for-loop_1
                                                                                                 rest_2)))))
                                                                                        (values)))))))
                                                                               (for-loop_1
                                                                                ids_1)))
                                                                            (void)
                                                                            new-maybe-cc?_0)))))
                                                                 (values
                                                                  maybe-cc?_1))))
                                                          (for-loop_0
                                                           maybe-cc?_1
                                                           rest_0
                                                           rest_1))))))
                                                maybe-cc?_0))))))
                                       (for-loop_0 #f idss_0 rhss_0)))
                                    (find-mutated!*_0
                                     imports_0
                                     knowns_0
                                     mutated_0
                                     prim-knowns_0
                                     simples_0
                                     bodys_0
                                     ids_0))))
                               (args
                                (raise-binding-result-arity-error 3 args))))
                             (if (if (eq? 'if hd_0)
                                   (let ((a_0 (cdr (unwrap v_0))))
                                     (let ((p_0 (unwrap a_0)))
                                       (if (pair? p_0)
                                         (let ((a_1 (cdr p_0)))
                                           (let ((p_1 (unwrap a_1)))
                                             (if (pair? p_1)
                                               (let ((a_2 (cdr p_1)))
                                                 (let ((p_2 (unwrap a_2)))
                                                   (if (pair? p_2)
                                                     (let ((a_3 (cdr p_2)))
                                                       (let ((app_0
                                                              (unwrap '())))
                                                         (eq?
                                                          app_0
                                                          (unwrap a_3))))
                                                     #f)))
                                               #f)))
                                         #f)))
                                   #f)
                               (call-with-values
                                (lambda ()
                                  (let ((d_0 (cdr (unwrap v_0))))
                                    (let ((p_0 (unwrap d_0)))
                                      (let ((tst_0
                                             (let ((a_0 (car p_0))) a_0)))
                                        (call-with-values
                                         (lambda ()
                                           (let ((d_1 (cdr p_0)))
                                             (let ((p_1 (unwrap d_1)))
                                               (let ((thn_0
                                                      (let ((a_0 (car p_1)))
                                                        a_0)))
                                                 (let ((els_0
                                                        (let ((d_2 (cdr p_1)))
                                                          (let ((a_0
                                                                 (car
                                                                  (unwrap
                                                                   d_2))))
                                                            a_0))))
                                                   (let ((thn_1 thn_0))
                                                     (values thn_1 els_0)))))))
                                         (case-lambda
                                          ((thn_0 els_0)
                                           (let ((tst_1 tst_0))
                                             (values tst_1 thn_0 els_0)))
                                          (args
                                           (raise-binding-result-arity-error
                                            2
                                            args))))))))
                                (case-lambda
                                 ((tst_0 thn_0 els_0)
                                  (begin
                                    (find-mutated!_0
                                     imports_0
                                     knowns_0
                                     mutated_0
                                     prim-knowns_0
                                     simples_0
                                     tst_0
                                     #f)
                                    (find-mutated!_0
                                     imports_0
                                     knowns_0
                                     mutated_0
                                     prim-knowns_0
                                     simples_0
                                     thn_0
                                     #f)
                                    (find-mutated!_0
                                     imports_0
                                     knowns_0
                                     mutated_0
                                     prim-knowns_0
                                     simples_0
                                     els_0
                                     #f)))
                                 (args
                                  (raise-binding-result-arity-error 3 args))))
                               (if (if (eq? 'with-continuation-mark hd_0)
                                     (let ((a_0 (cdr (unwrap v_0))))
                                       (let ((p_0 (unwrap a_0)))
                                         (if (pair? p_0)
                                           (let ((a_1 (cdr p_0)))
                                             (let ((p_1 (unwrap a_1)))
                                               (if (pair? p_1)
                                                 (let ((a_2 (cdr p_1)))
                                                   (let ((p_2 (unwrap a_2)))
                                                     (if (pair? p_2)
                                                       (let ((a_3 (cdr p_2)))
                                                         (let ((app_0
                                                                (unwrap '())))
                                                           (eq?
                                                            app_0
                                                            (unwrap a_3))))
                                                       #f)))
                                                 #f)))
                                           #f)))
                                     #f)
                                 (call-with-values
                                  (lambda ()
                                    (let ((d_0 (cdr (unwrap v_0))))
                                      (let ((p_0 (unwrap d_0)))
                                        (let ((key_0
                                               (let ((a_0 (car p_0))) a_0)))
                                          (call-with-values
                                           (lambda ()
                                             (let ((d_1 (cdr p_0)))
                                               (let ((p_1 (unwrap d_1)))
                                                 (let ((val_0
                                                        (let ((a_0 (car p_1)))
                                                          a_0)))
                                                   (let ((body_0
                                                          (let ((d_2
                                                                 (cdr p_1)))
                                                            (let ((a_0
                                                                   (car
                                                                    (unwrap
                                                                     d_2))))
                                                              a_0))))
                                                     (let ((val_1 val_0))
                                                       (values
                                                        val_1
                                                        body_0)))))))
                                           (case-lambda
                                            ((val_0 body_0)
                                             (let ((key_1 key_0))
                                               (values key_1 val_0 body_0)))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args))))))))
                                  (case-lambda
                                   ((key_0 val_0 body_0)
                                    (begin
                                      (find-mutated!_0
                                       imports_0
                                       knowns_0
                                       mutated_0
                                       prim-knowns_0
                                       simples_0
                                       key_0
                                       #f)
                                      (find-mutated!_0
                                       imports_0
                                       knowns_0
                                       mutated_0
                                       prim-knowns_0
                                       simples_0
                                       val_0
                                       #f)
                                      (find-mutated!_0
                                       imports_0
                                       knowns_0
                                       mutated_0
                                       prim-knowns_0
                                       simples_0
                                       body_0
                                       ids_0)))
                                   (args
                                    (raise-binding-result-arity-error
                                     3
                                     args))))
                                 (if (if (eq? 'begin hd_0)
                                       (let ((a_0 (cdr (unwrap v_0))))
                                         (wrap-list? a_0))
                                       #f)
                                   (let ((exps_0
                                          (let ((d_0 (cdr (unwrap v_0))))
                                            (unwrap-list d_0))))
                                     (find-mutated!*_0
                                      imports_0
                                      knowns_0
                                      mutated_0
                                      prim-knowns_0
                                      simples_0
                                      exps_0
                                      ids_0))
                                   (if (if (eq? 'begin0 hd_0)
                                         (let ((a_0 (cdr (unwrap v_0))))
                                           (let ((p_0 (unwrap a_0)))
                                             (if (pair? p_0)
                                               (let ((a_1 (cdr p_0)))
                                                 (wrap-list? a_1))
                                               #f)))
                                         #f)
                                     (call-with-values
                                      (lambda ()
                                        (let ((d_0 (cdr (unwrap v_0))))
                                          (let ((p_0 (unwrap d_0)))
                                            (let ((exp_0
                                                   (let ((a_0 (car p_0)))
                                                     a_0)))
                                              (let ((exps_0
                                                     (let ((d_1 (cdr p_0)))
                                                       (unwrap-list d_1))))
                                                (let ((exp_1 exp_0))
                                                  (values exp_1 exps_0)))))))
                                      (case-lambda
                                       ((exp_0 exps_0)
                                        (begin
                                          (find-mutated!_0
                                           imports_0
                                           knowns_0
                                           mutated_0
                                           prim-knowns_0
                                           simples_0
                                           exp_0
                                           ids_0)
                                          (find-mutated!*_0
                                           imports_0
                                           knowns_0
                                           mutated_0
                                           prim-knowns_0
                                           simples_0
                                           exps_0
                                           #f)))
                                       (args
                                        (raise-binding-result-arity-error
                                         2
                                         args))))
                                     (if (if (eq? 'set! hd_0)
                                           (let ((a_0 (cdr (unwrap v_0))))
                                             (let ((p_0 (unwrap a_0)))
                                               (if (pair? p_0)
                                                 (let ((a_1 (cdr p_0)))
                                                   (let ((p_1 (unwrap a_1)))
                                                     (if (pair? p_1)
                                                       (let ((a_2 (cdr p_1)))
                                                         (let ((app_0
                                                                (unwrap '())))
                                                           (eq?
                                                            app_0
                                                            (unwrap a_2))))
                                                       #f)))
                                                 #f)))
                                           #f)
                                       (call-with-values
                                        (lambda ()
                                          (let ((d_0 (cdr (unwrap v_0))))
                                            (let ((p_0 (unwrap d_0)))
                                              (let ((id_0
                                                     (let ((a_0 (car p_0)))
                                                       a_0)))
                                                (let ((rhs_0
                                                       (let ((d_1 (cdr p_0)))
                                                         (let ((a_0
                                                                (car
                                                                 (unwrap
                                                                  d_1))))
                                                           a_0))))
                                                  (let ((id_1 id_0))
                                                    (values id_1 rhs_0)))))))
                                        (case-lambda
                                         ((id_0 rhs_0)
                                          (begin
                                            (let ((id_1 (unwrap id_0)))
                                              (let ((old-state_0
                                                     (hash-ref
                                                      mutated_0
                                                      id_1
                                                      #f)))
                                                (begin
                                                  (hash-set!
                                                   mutated_0
                                                   id_1
                                                   (state->set!ed-state
                                                    old-state_0))
                                                  (if (procedure? old-state_0)
                                                    (|#%app| old-state_0)
                                                    (void)))))
                                            (find-mutated!_0
                                             imports_0
                                             knowns_0
                                             mutated_0
                                             prim-knowns_0
                                             simples_0
                                             rhs_0
                                             #f)))
                                         (args
                                          (raise-binding-result-arity-error
                                           2
                                           args))))
                                       (if (if (eq?
                                                '|#%variable-reference|
                                                hd_0)
                                             #t
                                             #f)
                                         (void)
                                         (if (let ((p_0 (unwrap v_0)))
                                               (if (pair? p_0)
                                                 (let ((a_0 (cdr p_0)))
                                                   (wrap-list? a_0))
                                                 #f))
                                           (call-with-values
                                            (lambda ()
                                              (let ((p_0 (unwrap v_0)))
                                                (let ((rator_0
                                                       (let ((a_0 (car p_0)))
                                                         a_0)))
                                                  (let ((exps_0
                                                         (let ((d_0 (cdr p_0)))
                                                           (unwrap-list d_0))))
                                                    (let ((rator_1 rator_0))
                                                      (values
                                                       rator_1
                                                       exps_0))))))
                                            (case-lambda
                                             ((rator_0 exps_0)
                                              (if (if ids_0
                                                    (let ((rator_1
                                                           (unwrap rator_0)))
                                                      (if (symbol? rator_1)
                                                        (if (let ((v_1
                                                                   (call-with-values
                                                                    (lambda ()
                                                                      (find-known+import
                                                                       rator_1
                                                                       prim-knowns_0
                                                                       knowns_0
                                                                       imports_0
                                                                       mutated_0))
                                                                    (case-lambda
                                                                     ((k_0
                                                                       im_0)
                                                                      k_0)
                                                                     (args
                                                                      (raise-binding-result-arity-error
                                                                       2
                                                                       args))))))
                                                              (if (known-constructor?
                                                                   v_1)
                                                                (let ((app_0
                                                                       (known-procedure-arity-mask
                                                                        v_1)))
                                                                  (bitwise-bit-set?
                                                                   app_0
                                                                   (length
                                                                    exps_0)))
                                                                #f))
                                                          (begin
                                                            (letrec*
                                                             ((for-loop_0
                                                               (|#%name|
                                                                for-loop
                                                                (lambda (result_0
                                                                         lst_0)
                                                                  (begin
                                                                    (if (pair?
                                                                         lst_0)
                                                                      (let ((exp_0
                                                                             (unsafe-car
                                                                              lst_0)))
                                                                        (let ((rest_0
                                                                               (unsafe-cdr
                                                                                lst_0)))
                                                                          (let ((result_1
                                                                                 (let ((result_1
                                                                                        (simple?.1
                                                                                         #t
                                                                                         1
                                                                                         exp_0
                                                                                         prim-knowns_0
                                                                                         knowns_0
                                                                                         imports_0
                                                                                         mutated_0
                                                                                         simples_0)))
                                                                                   (values
                                                                                    result_1))))
                                                                            (if (if (not
                                                                                     (let ((x_0
                                                                                            (list
                                                                                             exp_0)))
                                                                                       (not
                                                                                        result_1)))
                                                                                  #t
                                                                                  #f)
                                                                              (for-loop_0
                                                                               result_1
                                                                               rest_0)
                                                                              result_1))))
                                                                      result_0))))))
                                                             (for-loop_0
                                                              #t
                                                              exps_0)))
                                                          #f)
                                                        #f))
                                                    #f)
                                                (delay!_0
                                                 mutated_0
                                                 ids_0
                                                 (lambda ()
                                                   (find-mutated!*_0
                                                    imports_0
                                                    knowns_0
                                                    mutated_0
                                                    prim-knowns_0
                                                    simples_0
                                                    exps_0
                                                    #f)))
                                                (begin
                                                  (find-mutated!_0
                                                   imports_0
                                                   knowns_0
                                                   mutated_0
                                                   prim-knowns_0
                                                   simples_0
                                                   rator_0
                                                   #f)
                                                  (find-mutated!*_0
                                                   imports_0
                                                   knowns_0
                                                   mutated_0
                                                   prim-knowns_0
                                                   simples_0
                                                   exps_0
                                                   #f))))
                                             (args
                                              (raise-binding-result-arity-error
                                               2
                                               args))))
                                           (let ((v_1 (unwrap v_0)))
                                             (if (symbol? v_1)
                                               (let ((state_0
                                                      (hash-ref
                                                       mutated_0
                                                       v_1
                                                       #f)))
                                                 (if (eq? state_0 'not-ready)
                                                   (hash-set!
                                                    mutated_0
                                                    v_1
                                                    'too-early)
                                                   (if (procedure? state_0)
                                                     (if ids_0
                                                       (delay!_0
                                                        mutated_0
                                                        ids_0
                                                        (lambda ()
                                                          (begin
                                                            (hash-remove!
                                                             mutated_0
                                                             v_1)
                                                            (|#%app|
                                                             state_0))))
                                                       (begin
                                                         (hash-remove!
                                                          mutated_0
                                                          v_1)
                                                         (|#%app| state_0)))
                                                     (void))))
                                               (void)))))))))))))))))))))
    (lambda (v_0 ids_0 prim-knowns_0 knowns_0 imports_0 mutated_0 simples_0)
      (find-mutated!_0
       imports_0
       knowns_0
       mutated_0
       prim-knowns_0
       simples_0
       v_0
       ids_0))))
(define update-mutated-state!
  (lambda (l_0 mut-l_0 mutated_0)
    (if (null? (unwrap mut-l_0))
      '()
      (if (eq? l_0 mut-l_0)
        (let ((new-mut-l_0
               (letrec*
                ((loop_0
                  (|#%name|
                   loop
                   (lambda (mut-l_1)
                     (begin
                       (if (null? (unwrap mut-l_1))
                         '()
                         (let ((v_0 (wrap-car mut-l_1)))
                           (let ((hd_0
                                  (let ((p_0 (unwrap v_0)))
                                    (if (pair? p_0) (unwrap (car p_0)) #f))))
                             (if (if (eq? 'define-values hd_0)
                                   (let ((a_0 (cdr (unwrap v_0))))
                                     (let ((p_0 (unwrap a_0)))
                                       (if (pair? p_0)
                                         (if (let ((a_1 (car p_0)))
                                               (wrap-list? a_1))
                                           (let ((a_1 (cdr p_0)))
                                             (let ((p_1 (unwrap a_1)))
                                               (if (pair? p_1)
                                                 (let ((a_2 (cdr p_1)))
                                                   (let ((app_0 (unwrap '())))
                                                     (eq? app_0 (unwrap a_2))))
                                                 #f)))
                                           #f)
                                         #f)))
                                   #f)
                               (call-with-values
                                (lambda ()
                                  (let ((d_0 (cdr (unwrap v_0))))
                                    (let ((p_0 (unwrap d_0)))
                                      (let ((ids_0
                                             (let ((a_0 (car p_0)))
                                               (unwrap-list a_0))))
                                        (let ((rhs_0
                                               (let ((d_1 (cdr p_0)))
                                                 (let ((a_0
                                                        (car (unwrap d_1))))
                                                   a_0))))
                                          (let ((ids_1 ids_0))
                                            (values ids_1 rhs_0)))))))
                                (case-lambda
                                 ((ids_0 rhs_0)
                                  (if (lambda?.1 #t rhs_0)
                                    (begin
                                      (begin
                                        (letrec*
                                         ((for-loop_0
                                           (|#%name|
                                            for-loop
                                            (lambda (lst_0)
                                              (begin
                                                (if (pair? lst_0)
                                                  (let ((id_0
                                                         (unsafe-car lst_0)))
                                                    (let ((rest_0
                                                           (unsafe-cdr lst_0)))
                                                      (begin
                                                        (let ((u-id_0
                                                               (unwrap id_0)))
                                                          (let ((state_0
                                                                 (hash-ref
                                                                  mutated_0
                                                                  u-id_0
                                                                  #f)))
                                                            (if (if (too-early-mutated-state?
                                                                     state_0)
                                                                  (not
                                                                   (set!ed-mutated-state?
                                                                    state_0))
                                                                  #f)
                                                              (hash-set!
                                                               mutated_0
                                                               u-id_0
                                                               'too-early/ready)
                                                              (void))))
                                                        (for-loop_0 rest_0))))
                                                  (values)))))))
                                         (for-loop_0 ids_0)))
                                      (void)
                                      (loop_0 (wrap-cdr mut-l_1)))
                                    mut-l_1))
                                 (args
                                  (raise-binding-result-arity-error 2 args))))
                               mut-l_1)))))))))
                (loop_0 mut-l_0))))
          (if (eq? mut-l_0 l_0) (wrap-cdr mut-l_0) l_0))
        mut-l_0))))
(define left-to-right/let
  (letrec ((loop_0
            (|#%name|
             loop
             (lambda (bodys_0
                      imports_0
                      knowns_0
                      mutated_0
                      prim-knowns_0
                      simples_0
                      ids_0
                      rhss_0
                      all-simple?_0
                      binds_0)
               (begin
                 (if (null? (cdr rhss_0))
                   (let ((id_0 (car ids_0)))
                     (let ((rhs_0 (car rhss_0)))
                       (if (if all-simple?_0
                             (simple?.1
                              #t
                              1
                              rhs_0
                              prim-knowns_0
                              knowns_0
                              imports_0
                              mutated_0
                              simples_0)
                             #f)
                         (list* 'let (list (list id_0 rhs_0)) bodys_0)
                         (list
                          'let
                          (list (list id_0 rhs_0))
                          (list* 'let binds_0 bodys_0)))))
                   (let ((id_0 (car ids_0)))
                     (let ((rhs_0 (car rhss_0)))
                       (list
                        'let
                        (list (list id_0 rhs_0))
                        (let ((app_0 (cdr ids_0)))
                          (let ((app_1 (cdr rhss_0)))
                            (loop_0
                             bodys_0
                             imports_0
                             knowns_0
                             mutated_0
                             prim-knowns_0
                             simples_0
                             app_0
                             app_1
                             (if all-simple?_0
                               (simple?.1
                                #t
                                1
                                rhs_0
                                prim-knowns_0
                                knowns_0
                                imports_0
                                mutated_0
                                simples_0)
                               #f)
                             (cons (list id_0 id_0) binds_0)))))))))))))
    (lambda (ids_0
             rhss_0
             bodys_0
             prim-knowns_0
             knowns_0
             imports_0
             mutated_0
             simples_0)
      (if (null? ids_0)
        (if (null? (cdr bodys_0)) (car bodys_0) (list* 'begin bodys_0))
        (if (null? (cdr ids_0))
          (list*
           'let
           (list (let ((app_0 (car ids_0))) (list app_0 (car rhss_0))))
           bodys_0)
          (loop_0
           bodys_0
           imports_0
           knowns_0
           mutated_0
           prim-knowns_0
           simples_0
           ids_0
           rhss_0
           #t
           null))))))
(define left-to-right/let-values
  (letrec ((loop_0
            (|#%name|
             loop
             (lambda (bodys_0 for-cify?_0 idss_0 rhss_0 binds_0)
               (begin
                 (if (null? (cdr rhss_0))
                   (let ((app_0 (car idss_0)))
                     (make-let-values
                      app_0
                      (car rhss_0)
                      (list* 'let binds_0 bodys_0)
                      for-cify?_0))
                   (let ((ids_0 (car idss_0)))
                     (let ((app_0 (car rhss_0)))
                       (make-let-values
                        ids_0
                        app_0
                        (let ((app_1 (cdr idss_0)))
                          (let ((app_2 (cdr rhss_0)))
                            (loop_0
                             bodys_0
                             for-cify?_0
                             app_1
                             app_2
                             (append
                              (reverse$1
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (fold-var_0 lst_0)
                                       (begin
                                         (if (not (null? (unwrap lst_0)))
                                           (let ((id_0
                                                  (if (pair? (unwrap lst_0))
                                                    (wrap-car lst_0)
                                                    lst_0)))
                                             (let ((rest_0
                                                    (if (pair? (unwrap lst_0))
                                                      (wrap-cdr lst_0)
                                                      null)))
                                               (let ((id_1 id_0))
                                                 (let ((fold-var_1
                                                        (cons
                                                         (list id_1 id_1)
                                                         fold-var_0)))
                                                   (let ((fold-var_2
                                                          (values fold-var_1)))
                                                     (for-loop_0
                                                      fold-var_2
                                                      rest_0))))))
                                           fold-var_0))))))
                                  (for-loop_0 null ids_0))))
                              binds_0))))
                        for-cify?_0)))))))))
    (lambda (idss_0 rhss_0 bodys_0 mutated_0 for-cify?_0)
      (if (null? (cdr idss_0))
        (let ((e_0
               (if (null? (cdr bodys_0))
                 (car bodys_0)
                 (list* 'begin bodys_0))))
          (let ((app_0 (car idss_0)))
            (make-let-values app_0 (car rhss_0) e_0 for-cify?_0)))
        (loop_0 bodys_0 for-cify?_0 idss_0 rhss_0 null)))))
(define left-to-right/app
  (letrec ((loop_0
            (|#%name|
             loop
             (lambda (imports_0
                      knowns_0
                      mutated_0
                      plain-app?_0
                      prim-knowns_0
                      simples_0
                      l_0
                      accum_0
                      pending-non-simple_0
                      pending-id_0)
               (begin
                 (if (null? l_0)
                   (let ((app_0
                          (if pending-non-simple_0
                            (letrec*
                             ((loop_1
                               (|#%name|
                                loop
                                (lambda (accum_1 rev-accum_0)
                                  (begin
                                    (if (null? accum_1)
                                      rev-accum_0
                                      (if (eq? (car accum_1) pending-id_0)
                                        (loop_1
                                         (cdr accum_1)
                                         (cons
                                          pending-non-simple_0
                                          rev-accum_0))
                                        (let ((app_0 (cdr accum_1)))
                                          (loop_1
                                           app_0
                                           (cons
                                            (car accum_1)
                                            rev-accum_0))))))))))
                             (loop_1 accum_0 null))
                            (reverse$1 accum_0))))
                     (if plain-app?_0 app_0 (list* '|#%app| app_0)))
                   (if (let ((temp13_0 (car l_0)))
                         (simple?.1
                          #t
                          1
                          temp13_0
                          prim-knowns_0
                          knowns_0
                          imports_0
                          mutated_0
                          simples_0))
                     (let ((app_0 (cdr l_0)))
                       (loop_0
                        imports_0
                        knowns_0
                        mutated_0
                        plain-app?_0
                        prim-knowns_0
                        simples_0
                        app_0
                        (cons (car l_0) accum_0)
                        pending-non-simple_0
                        pending-id_0))
                     (if pending-non-simple_0
                       (list
                        'let
                        (list (list pending-id_0 pending-non-simple_0))
                        (loop_0
                         imports_0
                         knowns_0
                         mutated_0
                         plain-app?_0
                         prim-knowns_0
                         simples_0
                         l_0
                         accum_0
                         #f
                         #f))
                       (let ((g_0 (deterministic-gensym "app_")))
                         (let ((app_0 (cdr l_0)))
                           (loop_0
                            imports_0
                            knowns_0
                            mutated_0
                            plain-app?_0
                            prim-knowns_0
                            simples_0
                            app_0
                            (cons g_0 accum_0)
                            (car l_0)
                            g_0)))))))))))
    (lambda (rator_0
             rands_0
             plain-app?_0
             for-cify?_0
             prim-knowns_0
             knowns_0
             imports_0
             mutated_0
             simples_0)
      (if for-cify?_0
        (cons rator_0 rands_0)
        (loop_0
         imports_0
         knowns_0
         mutated_0
         plain-app?_0
         prim-knowns_0
         simples_0
         (cons rator_0 rands_0)
         null
         #f
         #f)))))
(define make-let-values
  (lambda (ids_0 rhs_0 body_0 for-cify?_0)
    (if (if (pair? ids_0) (null? (cdr ids_0)) #f)
      (list 'let (list (list (car ids_0) rhs_0)) body_0)
      (let ((v_0 (if (null? ids_0) rhs_0 #f)))
        (let ((hd_0
               (let ((p_0 (unwrap v_0)))
                 (if (pair? p_0) (unwrap (car p_0)) #f))))
          (if (if (eq? 'begin hd_0)
                (let ((a_0 (cdr (unwrap v_0))))
                  (let ((p_0 (unwrap a_0)))
                    (if (pair? p_0)
                      (let ((a_1 (cdr p_0)))
                        (let ((p_1 (unwrap a_1)))
                          (if (pair? p_1)
                            (if (let ((a_2 (car p_1)))
                                  (let ((p_2 (unwrap a_2)))
                                    (if (pair? p_2)
                                      (if (let ((a_3 (car p_2)))
                                            (let ((app_0 (unwrap 'values)))
                                              (eq? app_0 (unwrap a_3))))
                                        (let ((a_3 (cdr p_2)))
                                          (let ((app_0 (unwrap '())))
                                            (eq? app_0 (unwrap a_3))))
                                        #f)
                                      #f)))
                              (let ((a_2 (cdr p_1)))
                                (let ((app_0 (unwrap '())))
                                  (eq? app_0 (unwrap a_2))))
                              #f)
                            #f)))
                      #f)))
                #f)
            (let ((rhs_1
                   (let ((d_0 (cdr (unwrap v_0))))
                     (let ((a_0 (car (unwrap d_0)))) a_0))))
              (list 'begin rhs_1 body_0))
            (if for-cify?_0
              (list
               'call-with-values
               (list 'lambda '() rhs_0)
               (list 'lambda ids_0 body_0))
              (list
               'call-with-values
               (list 'lambda '() rhs_0)
               (list
                'case-lambda
                (list ids_0 body_0)
                (list
                 'args
                 (list*
                  'raise-binding-result-arity-error
                  (length ids_0)
                  '(args))))))))))))
(define prefab-key-all-fields-immutable?
  (lambda (k_0)
    (begin
      (if (prefab-key? k_0)
        (void)
        (raise-argument-error
         'prefab-key-all-fields-immutable?
         "prefab-key?"
         k_0))
      (all-fields-immutable? k_0))))
(define all-fields-immutable?
  (lambda (k_0)
    (let ((or-part_0 (symbol? k_0)))
      (if or-part_0
        or-part_0
        (let ((or-part_1 (null? k_0)))
          (if or-part_1
            or-part_1
            (let ((rk_0 (cdr k_0)))
              (let ((rk_1
                     (if (if (pair? rk_0) (exact-integer? (car rk_0)) #f)
                       (cdr rk_0)
                       rk_0)))
                (let ((rk_2
                       (if (if (pair? rk_1) (pair? (car rk_1)) #f)
                         (if (zero? (caar rk_1))
                           (cdr rk_1)
                           (cons '#(1) (cdr rk_1)))
                         rk_1)))
                  (if (if (pair? rk_2) (vector? (car rk_2)) #f)
                    (if (zero? (vector-length (car rk_2)))
                      (all-fields-immutable? (cdr rk_2))
                      #f)
                    (all-fields-immutable? rk_2)))))))))))
(define struct:path-for-srcloc
  (make-record-type-descriptor* 'path-for-srcloc #f #f #f #f 1 1))
(define effect2680
  (struct-type-install-properties!
   struct:path-for-srcloc
   'path-for-srcloc
   1
   0
   #f
   null
   (current-inspector)
   #f
   '(0)
   #f
   'path-for-srcloc))
(define path-for-srcloc1.1
  (|#%name|
   path-for-srcloc
   (record-constructor
    (make-record-constructor-descriptor struct:path-for-srcloc #f #f))))
(define path-for-srcloc?2679
  (|#%name| path-for-srcloc? (record-predicate struct:path-for-srcloc)))
(define path-for-srcloc?
  (|#%name|
   path-for-srcloc?
   (lambda (v)
     (if (path-for-srcloc?2679 v)
       #t
       ($value
        (if (impersonator? v)
          (path-for-srcloc?2679 (impersonator-val v))
          #f))))))
(define path-for-srcloc-path2681
  (|#%name| path-for-srcloc-path (record-accessor struct:path-for-srcloc 0)))
(define path-for-srcloc-path
  (|#%name|
   path-for-srcloc-path
   (lambda (s)
     (if (path-for-srcloc?2679 s)
       (path-for-srcloc-path2681 s)
       ($value
        (impersonate-ref
         path-for-srcloc-path2681
         struct:path-for-srcloc
         0
         s
         'path-for-srcloc
         'path))))))
(define effect2682
  (begin
    (register-struct-constructor! path-for-srcloc1.1)
    (register-struct-predicate! path-for-srcloc?)
    (register-struct-field-accessor!
     path-for-srcloc-path
     struct:path-for-srcloc
     0)
    (void)))
(define struct:to-fasl (make-record-type-descriptor* 'to-fasl #f #f #f #f 3 7))
(define effect2684
  (struct-type-install-properties!
   struct:to-fasl
   'to-fasl
   3
   0
   #f
   null
   (current-inspector)
   #f
   '()
   #f
   'to-fasl))
(define to-fasl1.1
  (|#%name|
   to-fasl
   (record-constructor
    (make-record-constructor-descriptor struct:to-fasl #f #f))))
(define to-fasl?2683 (|#%name| to-fasl? (record-predicate struct:to-fasl)))
(define to-fasl?
  (|#%name|
   to-fasl?
   (lambda (v)
     (if (to-fasl?2683 v)
       #t
       ($value
        (if (impersonator? v) (to-fasl?2683 (impersonator-val v)) #f))))))
(define to-fasl-vb2685
  (|#%name| to-fasl-vb (record-accessor struct:to-fasl 0)))
(define to-fasl-vb
  (|#%name|
   to-fasl-vb
   (lambda (s)
     (if (to-fasl?2683 s)
       (to-fasl-vb2685 s)
       ($value
        (impersonate-ref to-fasl-vb2685 struct:to-fasl 0 s 'to-fasl 'vb))))))
(define to-fasl-lifts2686
  (|#%name| to-fasl-lifts (record-accessor struct:to-fasl 1)))
(define to-fasl-lifts
  (|#%name|
   to-fasl-lifts
   (lambda (s)
     (if (to-fasl?2683 s)
       (to-fasl-lifts2686 s)
       ($value
        (impersonate-ref
         to-fasl-lifts2686
         struct:to-fasl
         1
         s
         'to-fasl
         'lifts))))))
(define to-fasl-wrt2687
  (|#%name| to-fasl-wrt (record-accessor struct:to-fasl 2)))
(define to-fasl-wrt
  (|#%name|
   to-fasl-wrt
   (lambda (s)
     (if (to-fasl?2683 s)
       (to-fasl-wrt2687 s)
       ($value
        (impersonate-ref to-fasl-wrt2687 struct:to-fasl 2 s 'to-fasl 'wrt))))))
(define set-to-fasl-vb!2688
  (|#%name| set-to-fasl-vb! (record-mutator struct:to-fasl 0)))
(define set-to-fasl-vb!
  (|#%name|
   set-to-fasl-vb!
   (lambda (s v)
     (if (to-fasl?2683 s)
       (set-to-fasl-vb!2688 s v)
       ($value
        (impersonate-set!
         set-to-fasl-vb!2688
         struct:to-fasl
         0
         0
         s
         v
         'to-fasl
         'vb))))))
(define set-to-fasl-lifts!2689
  (|#%name| set-to-fasl-lifts! (record-mutator struct:to-fasl 1)))
(define set-to-fasl-lifts!
  (|#%name|
   set-to-fasl-lifts!
   (lambda (s v)
     (if (to-fasl?2683 s)
       (set-to-fasl-lifts!2689 s v)
       ($value
        (impersonate-set!
         set-to-fasl-lifts!2689
         struct:to-fasl
         1
         1
         s
         v
         'to-fasl
         'lifts))))))
(define set-to-fasl-wrt!2690
  (|#%name| set-to-fasl-wrt! (record-mutator struct:to-fasl 2)))
(define set-to-fasl-wrt!
  (|#%name|
   set-to-fasl-wrt!
   (lambda (s v)
     (if (to-fasl?2683 s)
       (set-to-fasl-wrt!2690 s v)
       ($value
        (impersonate-set!
         set-to-fasl-wrt!2690
         struct:to-fasl
         2
         2
         s
         v
         'to-fasl
         'wrt))))))
(define effect2691
  (begin
    (register-struct-constructor! to-fasl1.1)
    (register-struct-predicate! to-fasl?)
    (register-struct-field-accessor! to-fasl-vb struct:to-fasl 0)
    (register-struct-field-accessor! to-fasl-lifts struct:to-fasl 1)
    (register-struct-field-accessor! to-fasl-wrt struct:to-fasl 2)
    (register-struct-field-mutator! set-to-fasl-vb! struct:to-fasl 0)
    (register-struct-field-mutator! set-to-fasl-lifts! struct:to-fasl 1)
    (register-struct-field-mutator! set-to-fasl-wrt! struct:to-fasl 2)
    (void)))
(define lift-quoted?
  (letrec ((lift-quoted?_0
            (|#%name|
             lift-quoted?
             (lambda (datum-intern?_0 for-cify?_0 q_0)
               (begin
                 (if for-cify?_0
                   (not
                    (let ((or-part_0
                           (if (exact-integer? q_0)
                             (<= -536870912 q_0 536870911)
                             #f)))
                      (if or-part_0
                        or-part_0
                        (let ((or-part_1 (boolean? q_0)))
                          (if or-part_1
                            or-part_1
                            (let ((or-part_2 (null? q_0)))
                              (if or-part_2 or-part_2 (void? q_0))))))))
                   (if (impersonator? q_0)
                     #t
                     (if (path? q_0)
                       #t
                       (if (regexp? q_0)
                         #t
                         (if (srcloc? q_0)
                           #t
                           (if (byte-regexp? q_0)
                             #t
                             (if (keyword? q_0)
                               #t
                               (if (hash? q_0)
                                 #t
                                 (if (string? q_0)
                                   datum-intern?_0
                                   (if (bytes? q_0)
                                     datum-intern?_0
                                     (if (pair? q_0)
                                       (let ((or-part_0
                                              (lift-quoted?_0
                                               datum-intern?_0
                                               for-cify?_0
                                               (car q_0))))
                                         (if or-part_0
                                           or-part_0
                                           (lift-quoted?_0
                                            datum-intern?_0
                                            for-cify?_0
                                            (cdr q_0))))
                                       (if (vector? q_0)
                                         (call-with-values
                                          (lambda ()
                                            (begin
                                              (check-vector q_0)
                                              (values
                                               q_0
                                               (unsafe-vector-length q_0))))
                                          (case-lambda
                                           ((vec_0 len_0)
                                            (begin
                                              #f
                                              (letrec*
                                               ((for-loop_0
                                                 (|#%name|
                                                  for-loop
                                                  (lambda (result_0 pos_0)
                                                    (begin
                                                      (if (unsafe-fx<
                                                           pos_0
                                                           len_0)
                                                        (let ((e_0
                                                               (unsafe-vector-ref
                                                                vec_0
                                                                pos_0)))
                                                          (let ((result_1
                                                                 (let ((result_1
                                                                        (lift-quoted?_0
                                                                         datum-intern?_0
                                                                         for-cify?_0
                                                                         e_0)))
                                                                   (values
                                                                    result_1))))
                                                            (if (if (not
                                                                     (let ((x_0
                                                                            (list
                                                                             e_0)))
                                                                       result_1))
                                                                  #t
                                                                  #f)
                                                              (for-loop_0
                                                               result_1
                                                               (unsafe-fx+
                                                                1
                                                                pos_0))
                                                              result_1)))
                                                        result_0))))))
                                               (for-loop_0 #f 0))))
                                           (args
                                            (raise-binding-result-arity-error
                                             2
                                             args))))
                                         (if (box? q_0)
                                           (lift-quoted?_0
                                            datum-intern?_0
                                            for-cify?_0
                                            (unbox q_0))
                                           (if (prefab-struct-key q_0)
                                             #t
                                             (if (extflonum? q_0)
                                               #t
                                               (if (let ((or-part_0
                                                          (null? q_0)))
                                                     (if or-part_0
                                                       or-part_0
                                                       (let ((or-part_1
                                                              (number? q_0)))
                                                         (if or-part_1
                                                           or-part_1
                                                           (let ((or-part_2
                                                                  (char? q_0)))
                                                             (if or-part_2
                                                               or-part_2
                                                               (let ((or-part_3
                                                                      (boolean?
                                                                       q_0)))
                                                                 (if or-part_3
                                                                   or-part_3
                                                                   (let ((or-part_4
                                                                          (if (symbol?
                                                                               q_0)
                                                                            (let ((or-part_4
                                                                                   (symbol-interned?
                                                                                    q_0)))
                                                                              (if or-part_4
                                                                                or-part_4
                                                                                (symbol-unreadable?
                                                                                 q_0)))
                                                                            #f)))
                                                                     (if or-part_4
                                                                       or-part_4
                                                                       (let ((or-part_5
                                                                              (eof-object?
                                                                               q_0)))
                                                                         (if or-part_5
                                                                           or-part_5
                                                                           (let ((or-part_6
                                                                                  (void?
                                                                                   q_0)))
                                                                             (if or-part_6
                                                                               or-part_6
                                                                               (eq?
                                                                                q_0
                                                                                unsafe-undefined)))))))))))))))
                                                 #f
                                                 #t)))))))))))))))))))))
    (lambda (q_0 for-cify?_0 datum-intern?_0)
      (lift-quoted?_0 datum-intern?_0 for-cify?_0 q_0))))
(define large-quoted?
  (letrec ((remain_0
            (|#%name|
             remain
             (lambda (q_0 fuel_0)
               (begin
                 (if (fx= fuel_0 0)
                   0
                   (if (pair? q_0)
                     (let ((app_0 (cdr q_0)))
                       (remain_0
                        app_0
                        (let ((app_1 (car q_0)))
                          (remain_0 app_1 (fx- fuel_0 1)))))
                     (if (vector? q_0)
                       (call-with-values
                        (lambda ()
                          (begin
                            (check-vector q_0)
                            (values q_0 (unsafe-vector-length q_0))))
                        (case-lambda
                         ((vec_0 len_0)
                          (begin
                            #f
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (fuel_1 pos_0)
                                  (begin
                                    (if (unsafe-fx< pos_0 len_0)
                                      (let ((e_0
                                             (unsafe-vector-ref vec_0 pos_0)))
                                        (let ((fuel_2
                                               (let ((fuel_2
                                                      (remain_0 e_0 fuel_1)))
                                                 (values fuel_2))))
                                          (for-loop_0
                                           fuel_2
                                           (unsafe-fx+ 1 pos_0))))
                                      fuel_1))))))
                             (for-loop_0 (fx- fuel_0 1) 0))))
                         (args (raise-binding-result-arity-error 2 args))))
                       (if (box? q_0)
                         (let ((app_0 (unbox q_0)))
                           (remain_0 app_0 (fx- fuel_0 1)))
                         (if (prefab-struct-key q_0)
                           (remain_0 (struct->vector q_0) fuel_0)
                           (fx- fuel_0 1)))))))))))
    (lambda (q_0) (let ((fuel_0 (remain_0 q_0 128))) (fx= fuel_0 0)))))
(define convert-for-serialize
  (letrec ((convert-body_0
            (|#%name|
             convert-body
             (lambda (add-lifted_0
                      datum-intern?_0
                      for-cify?_0
                      lifted-eq-constants_0
                      lifted-equal-constants_0
                      body_0)
               (begin
                 (reverse$1
                  (begin
                    (letrec*
                     ((for-loop_0
                       (|#%name|
                        for-loop
                        (lambda (fold-var_0 lst_0)
                          (begin
                            (if (pair? lst_0)
                              (let ((e_0 (unsafe-car lst_0)))
                                (let ((rest_0 (unsafe-cdr lst_0)))
                                  (let ((fold-var_1
                                         (let ((fold-var_1
                                                (cons
                                                 (convert_0
                                                  add-lifted_0
                                                  datum-intern?_0
                                                  for-cify?_0
                                                  lifted-eq-constants_0
                                                  lifted-equal-constants_0
                                                  e_0)
                                                 fold-var_0)))
                                           (values fold-var_1))))
                                    (for-loop_0 fold-var_1 rest_0))))
                              fold-var_0))))))
                     (for-loop_0 null body_0))))))))
           (convert-function-body_0
            (|#%name|
             convert-function-body
             (lambda (add-lifted_0
                      datum-intern?_0
                      for-cify?_0
                      lifted-eq-constants_0
                      lifted-equal-constants_0
                      body_0)
               (begin
                 (if for-cify?_0
                   (if (let ((p_0 (unwrap body_0)))
                         (if (pair? p_0)
                           (if (let ((a_0 (car p_0)))
                                 (let ((p_1 (unwrap a_0)))
                                   (if (pair? p_1)
                                     (if (let ((a_1 (car p_1)))
                                           (let ((app_0 (unwrap 'begin)))
                                             (eq? app_0 (unwrap a_1))))
                                       (let ((a_1 (cdr p_1)))
                                         (let ((p_2 (unwrap a_1)))
                                           (if (pair? p_2)
                                             (if (let ((a_2 (car p_2)))
                                                   (let ((p_3 (unwrap a_2)))
                                                     (if (pair? p_3)
                                                       (if (let ((a_3
                                                                  (car p_3)))
                                                             (let ((app_0
                                                                    (unwrap
                                                                     'quote)))
                                                               (eq?
                                                                app_0
                                                                (unwrap a_3))))
                                                         (let ((a_3 (cdr p_3)))
                                                           (let ((p_4
                                                                  (unwrap
                                                                   a_3)))
                                                             (if (pair? p_4)
                                                               (let ((a_4
                                                                      (cdr
                                                                       p_4)))
                                                                 (let ((app_0
                                                                        (unwrap
                                                                         '())))
                                                                   (eq?
                                                                    app_0
                                                                    (unwrap
                                                                     a_4))))
                                                               #f)))
                                                         #f)
                                                       #f)))
                                               (let ((a_2 (cdr p_2)))
                                                 (let ((p_3 (unwrap a_2)))
                                                   (if (pair? p_3) #t #f)))
                                               #f)
                                             #f)))
                                       #f)
                                     #f)))
                             (let ((a_0 (cdr p_0)))
                               (let ((app_0 (unwrap '())))
                                 (eq? app_0 (unwrap a_0))))
                             #f)
                           #f))
                     (call-with-values
                      (lambda ()
                        (let ((a_0 (car (unwrap body_0))))
                          (let ((d_0 (cdr (unwrap a_0))))
                            (let ((p_0 (unwrap d_0)))
                              (let ((name_0
                                     (let ((a_1 (car p_0)))
                                       (let ((d_1 (cdr (unwrap a_1))))
                                         (let ((a_2 (car (unwrap d_1))))
                                           a_2)))))
                                (call-with-values
                                 (lambda ()
                                   (let ((d_1 (cdr p_0)))
                                     (let ((p_1 (unwrap d_1)))
                                       (let ((body_1
                                              (let ((a_1 (car p_1))) a_1)))
                                         (let ((bodys_0
                                                (let ((d_2 (cdr p_1))) d_2)))
                                           (let ((body_2 body_1))
                                             (values body_2 bodys_0)))))))
                                 (case-lambda
                                  ((body_1 bodys_0)
                                   (let ((name_1 name_0))
                                     (values name_1 body_1 bodys_0)))
                                  (args
                                   (raise-binding-result-arity-error
                                    2
                                    args)))))))))
                      (case-lambda
                       ((name_0 body_1 bodys_0)
                        (list
                         (list*
                          'begin
                          (list 'quote name_0)
                          (convert-body_0
                           add-lifted_0
                           datum-intern?_0
                           for-cify?_0
                           lifted-eq-constants_0
                           lifted-equal-constants_0
                           (cons body_1 bodys_0)))))
                       (args (raise-binding-result-arity-error 3 args))))
                     (convert-body_0
                      add-lifted_0
                      datum-intern?_0
                      for-cify?_0
                      lifted-eq-constants_0
                      lifted-equal-constants_0
                      body_0))
                   (convert-body_0
                    add-lifted_0
                    datum-intern?_0
                    for-cify?_0
                    lifted-eq-constants_0
                    lifted-equal-constants_0
                    body_0))))))
           (convert_0
            (|#%name|
             convert
             (lambda (add-lifted_0
                      datum-intern?_0
                      for-cify?_0
                      lifted-eq-constants_0
                      lifted-equal-constants_0
                      v_0)
               (begin
                 (reannotate
                  v_0
                  (let ((hd_0
                         (let ((p_0 (unwrap v_0)))
                           (if (pair? p_0) (unwrap (car p_0)) #f))))
                    (if (if (eq? 'quote hd_0)
                          (let ((a_0 (cdr (unwrap v_0))))
                            (let ((p_0 (unwrap a_0)))
                              (if (pair? p_0)
                                (let ((a_1 (cdr p_0)))
                                  (let ((app_0 (unwrap '())))
                                    (eq? app_0 (unwrap a_1))))
                                #f)))
                          #f)
                      (let ((q_0
                             (let ((d_0 (cdr (unwrap v_0))))
                               (let ((a_0 (car (unwrap d_0)))) a_0))))
                        (if (lift-quoted? q_0 for-cify?_0 datum-intern?_0)
                          (make-construct
                           q_0
                           add-lifted_0
                           lifted-eq-constants_0
                           lifted-equal-constants_0
                           for-cify?_0
                           datum-intern?_0)
                          v_0))
                      (if (if (eq? 'lambda hd_0)
                            (let ((a_0 (cdr (unwrap v_0))))
                              (let ((p_0 (unwrap a_0)))
                                (if (pair? p_0)
                                  (let ((a_1 (cdr p_0))) (wrap-list? a_1))
                                  #f)))
                            #f)
                        (call-with-values
                         (lambda ()
                           (let ((d_0 (cdr (unwrap v_0))))
                             (let ((p_0 (unwrap d_0)))
                               (let ((formals_0 (let ((a_0 (car p_0))) a_0)))
                                 (let ((body_0
                                        (let ((d_1 (cdr p_0)))
                                          (unwrap-list d_1))))
                                   (let ((formals_1 formals_0))
                                     (values formals_1 body_0)))))))
                         (case-lambda
                          ((formals_0 body_0)
                           (list*
                            'lambda
                            formals_0
                            (convert-function-body_0
                             add-lifted_0
                             datum-intern?_0
                             for-cify?_0
                             lifted-eq-constants_0
                             lifted-equal-constants_0
                             body_0)))
                          (args (raise-binding-result-arity-error 2 args))))
                        (if (if (eq? 'case-lambda hd_0)
                              (let ((a_0 (cdr (unwrap v_0))))
                                (if (wrap-list? a_0)
                                  (begin
                                    (letrec*
                                     ((for-loop_0
                                       (|#%name|
                                        for-loop
                                        (lambda (result_0 lst_0)
                                          (begin
                                            (if (not (null? (unwrap lst_0)))
                                              (let ((v_1
                                                     (if (pair? (unwrap lst_0))
                                                       (wrap-car lst_0)
                                                       lst_0)))
                                                (let ((rest_0
                                                       (if (pair?
                                                            (unwrap lst_0))
                                                         (wrap-cdr lst_0)
                                                         null)))
                                                  (let ((v_2 v_1))
                                                    (let ((result_1
                                                           (let ((result_1
                                                                  (let ((p_0
                                                                         (unwrap
                                                                          v_2)))
                                                                    (if (pair?
                                                                         p_0)
                                                                      (let ((a_1
                                                                             (cdr
                                                                              p_0)))
                                                                        (wrap-list?
                                                                         a_1))
                                                                      #f))))
                                                             (values
                                                              result_1))))
                                                      (if (if (not
                                                               (let ((x_0
                                                                      (list
                                                                       v_2)))
                                                                 (not
                                                                  result_1)))
                                                            #t
                                                            #f)
                                                        (for-loop_0
                                                         result_1
                                                         rest_0)
                                                        result_1)))))
                                              result_0))))))
                                     (for-loop_0 #t a_0)))
                                  #f))
                              #f)
                          (call-with-values
                           (lambda ()
                             (let ((d_0 (cdr (unwrap v_0))))
                               (call-with-values
                                (lambda ()
                                  (begin
                                    (letrec*
                                     ((for-loop_0
                                       (|#%name|
                                        for-loop
                                        (lambda (formalss_0 bodys_0 lst_0)
                                          (begin
                                            (if (not (null? (unwrap lst_0)))
                                              (let ((v_1
                                                     (if (pair? (unwrap lst_0))
                                                       (wrap-car lst_0)
                                                       lst_0)))
                                                (let ((rest_0
                                                       (if (pair?
                                                            (unwrap lst_0))
                                                         (wrap-cdr lst_0)
                                                         null)))
                                                  (let ((v_2 v_1))
                                                    (call-with-values
                                                     (lambda ()
                                                       (call-with-values
                                                        (lambda ()
                                                          (call-with-values
                                                           (lambda ()
                                                             (let ((p_0
                                                                    (unwrap
                                                                     v_2)))
                                                               (let ((formalss_1
                                                                      (let ((a_0
                                                                             (car
                                                                              p_0)))
                                                                        a_0)))
                                                                 (let ((bodys_1
                                                                        (let ((d_1
                                                                               (cdr
                                                                                p_0)))
                                                                          (unwrap-list
                                                                           d_1))))
                                                                   (let ((formalss_2
                                                                          formalss_1))
                                                                     (values
                                                                      formalss_2
                                                                      bodys_1))))))
                                                           (case-lambda
                                                            ((formalss1_0
                                                              bodys2_0)
                                                             (values
                                                              (cons
                                                               formalss1_0
                                                               formalss_0)
                                                              (cons
                                                               bodys2_0
                                                               bodys_0)))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              2
                                                              args)))))
                                                        (case-lambda
                                                         ((formalss_1 bodys_1)
                                                          (values
                                                           formalss_1
                                                           bodys_1))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args)))))
                                                     (case-lambda
                                                      ((formalss_1 bodys_1)
                                                       (for-loop_0
                                                        formalss_1
                                                        bodys_1
                                                        rest_0))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args)))))))
                                              (values formalss_0 bodys_0)))))))
                                     (for-loop_0 null null d_0))))
                                (case-lambda
                                 ((formalss_0 bodys_0)
                                  (let ((app_0 (reverse$1 formalss_0)))
                                    (values app_0 (reverse$1 bodys_0))))
                                 (args
                                  (raise-binding-result-arity-error
                                   2
                                   args))))))
                           (case-lambda
                            ((formalss_0 bodys_0)
                             (list*
                              'case-lambda
                              (reverse$1
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (fold-var_0 lst_0 lst_1)
                                       (begin
                                         (if (if (pair? lst_0)
                                               (pair? lst_1)
                                               #f)
                                           (let ((formals_0
                                                  (unsafe-car lst_0)))
                                             (let ((rest_0 (unsafe-cdr lst_0)))
                                               (let ((body_0
                                                      (unsafe-car lst_1)))
                                                 (let ((rest_1
                                                        (unsafe-cdr lst_1)))
                                                   (let ((fold-var_1
                                                          (let ((fold-var_1
                                                                 (cons
                                                                  (list*
                                                                   formals_0
                                                                   (convert-function-body_0
                                                                    add-lifted_0
                                                                    datum-intern?_0
                                                                    for-cify?_0
                                                                    lifted-eq-constants_0
                                                                    lifted-equal-constants_0
                                                                    body_0))
                                                                  fold-var_0)))
                                                            (values
                                                             fold-var_1))))
                                                     (for-loop_0
                                                      fold-var_1
                                                      rest_0
                                                      rest_1))))))
                                           fold-var_0))))))
                                  (for-loop_0 null formalss_0 bodys_0))))))
                            (args (raise-binding-result-arity-error 2 args))))
                          (if (if (eq? 'define-values hd_0)
                                (let ((a_0 (cdr (unwrap v_0))))
                                  (let ((p_0 (unwrap a_0)))
                                    (if (pair? p_0)
                                      (let ((a_1 (cdr p_0)))
                                        (let ((p_1 (unwrap a_1)))
                                          (if (pair? p_1)
                                            (let ((a_2 (cdr p_1)))
                                              (let ((app_0 (unwrap '())))
                                                (eq? app_0 (unwrap a_2))))
                                            #f)))
                                      #f)))
                                #f)
                            (call-with-values
                             (lambda ()
                               (let ((d_0 (cdr (unwrap v_0))))
                                 (let ((p_0 (unwrap d_0)))
                                   (let ((ids_0 (let ((a_0 (car p_0))) a_0)))
                                     (let ((rhs_0
                                            (let ((d_1 (cdr p_0)))
                                              (let ((a_0 (car (unwrap d_1))))
                                                a_0))))
                                       (let ((ids_1 ids_0))
                                         (values ids_1 rhs_0)))))))
                             (case-lambda
                              ((ids_0 rhs_0)
                               (list
                                'define-values
                                ids_0
                                (convert_0
                                 add-lifted_0
                                 datum-intern?_0
                                 for-cify?_0
                                 lifted-eq-constants_0
                                 lifted-equal-constants_0
                                 rhs_0)))
                              (args
                               (raise-binding-result-arity-error 2 args))))
                            (if (if (eq? 'let-values hd_0)
                                  (let ((a_0 (cdr (unwrap v_0))))
                                    (let ((p_0 (unwrap a_0)))
                                      (if (pair? p_0)
                                        (if (let ((a_1 (car p_0)))
                                              (if (wrap-list? a_1)
                                                (begin
                                                  (letrec*
                                                   ((for-loop_0
                                                     (|#%name|
                                                      for-loop
                                                      (lambda (result_0 lst_0)
                                                        (begin
                                                          (if (not
                                                               (null?
                                                                (unwrap
                                                                 lst_0)))
                                                            (let ((v_1
                                                                   (if (pair?
                                                                        (unwrap
                                                                         lst_0))
                                                                     (wrap-car
                                                                      lst_0)
                                                                     lst_0)))
                                                              (let ((rest_0
                                                                     (if (pair?
                                                                          (unwrap
                                                                           lst_0))
                                                                       (wrap-cdr
                                                                        lst_0)
                                                                       null)))
                                                                (let ((v_2
                                                                       v_1))
                                                                  (let ((result_1
                                                                         (let ((result_1
                                                                                (let ((p_1
                                                                                       (unwrap
                                                                                        v_2)))
                                                                                  (if (pair?
                                                                                       p_1)
                                                                                    (let ((a_2
                                                                                           (cdr
                                                                                            p_1)))
                                                                                      (let ((p_2
                                                                                             (unwrap
                                                                                              a_2)))
                                                                                        (if (pair?
                                                                                             p_2)
                                                                                          (let ((a_3
                                                                                                 (cdr
                                                                                                  p_2)))
                                                                                            (let ((app_0
                                                                                                   (unwrap
                                                                                                    '())))
                                                                                              (eq?
                                                                                               app_0
                                                                                               (unwrap
                                                                                                a_3))))
                                                                                          #f)))
                                                                                    #f))))
                                                                           (values
                                                                            result_1))))
                                                                    (if (if (not
                                                                             (let ((x_0
                                                                                    (list
                                                                                     v_2)))
                                                                               (not
                                                                                result_1)))
                                                                          #t
                                                                          #f)
                                                                      (for-loop_0
                                                                       result_1
                                                                       rest_0)
                                                                      result_1)))))
                                                            result_0))))))
                                                   (for-loop_0 #t a_1)))
                                                #f))
                                          (let ((a_1 (cdr p_0)))
                                            (wrap-list? a_1))
                                          #f)
                                        #f)))
                                  #f)
                              (call-with-values
                               (lambda ()
                                 (let ((d_0 (cdr (unwrap v_0))))
                                   (let ((p_0 (unwrap d_0)))
                                     (call-with-values
                                      (lambda ()
                                        (let ((a_0 (car p_0)))
                                          (call-with-values
                                           (lambda ()
                                             (begin
                                               (letrec*
                                                ((for-loop_0
                                                  (|#%name|
                                                   for-loop
                                                   (lambda (idss_0
                                                            rhss_0
                                                            lst_0)
                                                     (begin
                                                       (if (not
                                                            (null?
                                                             (unwrap lst_0)))
                                                         (let ((v_1
                                                                (if (pair?
                                                                     (unwrap
                                                                      lst_0))
                                                                  (wrap-car
                                                                   lst_0)
                                                                  lst_0)))
                                                           (let ((rest_0
                                                                  (if (pair?
                                                                       (unwrap
                                                                        lst_0))
                                                                    (wrap-cdr
                                                                     lst_0)
                                                                    null)))
                                                             (let ((v_2 v_1))
                                                               (call-with-values
                                                                (lambda ()
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (call-with-values
                                                                      (lambda ()
                                                                        (let ((p_1
                                                                               (unwrap
                                                                                v_2)))
                                                                          (let ((idss_1
                                                                                 (let ((a_1
                                                                                        (car
                                                                                         p_1)))
                                                                                   a_1)))
                                                                            (let ((rhss_1
                                                                                   (let ((d_1
                                                                                          (cdr
                                                                                           p_1)))
                                                                                     (let ((a_1
                                                                                            (car
                                                                                             (unwrap
                                                                                              d_1))))
                                                                                       a_1))))
                                                                              (let ((idss_2
                                                                                     idss_1))
                                                                                (values
                                                                                 idss_2
                                                                                 rhss_1))))))
                                                                      (case-lambda
                                                                       ((idss3_0
                                                                         rhss4_0)
                                                                        (values
                                                                         (cons
                                                                          idss3_0
                                                                          idss_0)
                                                                         (cons
                                                                          rhss4_0
                                                                          rhss_0)))
                                                                       (args
                                                                        (raise-binding-result-arity-error
                                                                         2
                                                                         args)))))
                                                                   (case-lambda
                                                                    ((idss_1
                                                                      rhss_1)
                                                                     (values
                                                                      idss_1
                                                                      rhss_1))
                                                                    (args
                                                                     (raise-binding-result-arity-error
                                                                      2
                                                                      args)))))
                                                                (case-lambda
                                                                 ((idss_1
                                                                   rhss_1)
                                                                  (for-loop_0
                                                                   idss_1
                                                                   rhss_1
                                                                   rest_0))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   2
                                                                   args)))))))
                                                         (values
                                                          idss_0
                                                          rhss_0)))))))
                                                (for-loop_0 null null a_0))))
                                           (case-lambda
                                            ((idss_0 rhss_0)
                                             (let ((app_0 (reverse$1 idss_0)))
                                               (values
                                                app_0
                                                (reverse$1 rhss_0))))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args))))))
                                      (case-lambda
                                       ((idss_0 rhss_0)
                                        (let ((bodys_0
                                               (let ((d_1 (cdr p_0)))
                                                 (unwrap-list d_1))))
                                          (let ((idss_1 idss_0)
                                                (rhss_1 rhss_0))
                                            (values idss_1 rhss_1 bodys_0))))
                                       (args
                                        (raise-binding-result-arity-error
                                         2
                                         args)))))))
                               (case-lambda
                                ((idss_0 rhss_0 bodys_0)
                                 (let ((app_0
                                        (reverse$1
                                         (begin
                                           (letrec*
                                            ((for-loop_0
                                              (|#%name|
                                               for-loop
                                               (lambda (fold-var_0 lst_0 lst_1)
                                                 (begin
                                                   (if (if (pair? lst_0)
                                                         (pair? lst_1)
                                                         #f)
                                                     (let ((ids_0
                                                            (unsafe-car
                                                             lst_0)))
                                                       (let ((rest_0
                                                              (unsafe-cdr
                                                               lst_0)))
                                                         (let ((rhs_0
                                                                (unsafe-car
                                                                 lst_1)))
                                                           (let ((rest_1
                                                                  (unsafe-cdr
                                                                   lst_1)))
                                                             (let ((fold-var_1
                                                                    (let ((fold-var_1
                                                                           (cons
                                                                            (list
                                                                             ids_0
                                                                             (convert_0
                                                                              add-lifted_0
                                                                              datum-intern?_0
                                                                              for-cify?_0
                                                                              lifted-eq-constants_0
                                                                              lifted-equal-constants_0
                                                                              rhs_0))
                                                                            fold-var_0)))
                                                                      (values
                                                                       fold-var_1))))
                                                               (for-loop_0
                                                                fold-var_1
                                                                rest_0
                                                                rest_1))))))
                                                     fold-var_0))))))
                                            (for-loop_0
                                             null
                                             idss_0
                                             rhss_0))))))
                                   (list*
                                    'let-values
                                    app_0
                                    (convert-body_0
                                     add-lifted_0
                                     datum-intern?_0
                                     for-cify?_0
                                     lifted-eq-constants_0
                                     lifted-equal-constants_0
                                     bodys_0))))
                                (args
                                 (raise-binding-result-arity-error 3 args))))
                              (if (if (eq? 'letrec-values hd_0)
                                    (let ((a_0 (cdr (unwrap v_0))))
                                      (let ((p_0 (unwrap a_0)))
                                        (if (pair? p_0)
                                          (if (let ((a_1 (car p_0)))
                                                (if (wrap-list? a_1)
                                                  (begin
                                                    (letrec*
                                                     ((for-loop_0
                                                       (|#%name|
                                                        for-loop
                                                        (lambda (result_0
                                                                 lst_0)
                                                          (begin
                                                            (if (not
                                                                 (null?
                                                                  (unwrap
                                                                   lst_0)))
                                                              (let ((v_1
                                                                     (if (pair?
                                                                          (unwrap
                                                                           lst_0))
                                                                       (wrap-car
                                                                        lst_0)
                                                                       lst_0)))
                                                                (let ((rest_0
                                                                       (if (pair?
                                                                            (unwrap
                                                                             lst_0))
                                                                         (wrap-cdr
                                                                          lst_0)
                                                                         null)))
                                                                  (let ((v_2
                                                                         v_1))
                                                                    (let ((result_1
                                                                           (let ((result_1
                                                                                  (let ((p_1
                                                                                         (unwrap
                                                                                          v_2)))
                                                                                    (if (pair?
                                                                                         p_1)
                                                                                      (let ((a_2
                                                                                             (cdr
                                                                                              p_1)))
                                                                                        (let ((p_2
                                                                                               (unwrap
                                                                                                a_2)))
                                                                                          (if (pair?
                                                                                               p_2)
                                                                                            (let ((a_3
                                                                                                   (cdr
                                                                                                    p_2)))
                                                                                              (let ((app_0
                                                                                                     (unwrap
                                                                                                      '())))
                                                                                                (eq?
                                                                                                 app_0
                                                                                                 (unwrap
                                                                                                  a_3))))
                                                                                            #f)))
                                                                                      #f))))
                                                                             (values
                                                                              result_1))))
                                                                      (if (if (not
                                                                               (let ((x_0
                                                                                      (list
                                                                                       v_2)))
                                                                                 (not
                                                                                  result_1)))
                                                                            #t
                                                                            #f)
                                                                        (for-loop_0
                                                                         result_1
                                                                         rest_0)
                                                                        result_1)))))
                                                              result_0))))))
                                                     (for-loop_0 #t a_1)))
                                                  #f))
                                            (let ((a_1 (cdr p_0)))
                                              (wrap-list? a_1))
                                            #f)
                                          #f)))
                                    #f)
                                (call-with-values
                                 (lambda ()
                                   (let ((d_0 (cdr (unwrap v_0))))
                                     (let ((p_0 (unwrap d_0)))
                                       (call-with-values
                                        (lambda ()
                                          (let ((a_0 (car p_0)))
                                            (call-with-values
                                             (lambda ()
                                               (begin
                                                 (letrec*
                                                  ((for-loop_0
                                                    (|#%name|
                                                     for-loop
                                                     (lambda (idss_0
                                                              rhss_0
                                                              lst_0)
                                                       (begin
                                                         (if (not
                                                              (null?
                                                               (unwrap lst_0)))
                                                           (let ((v_1
                                                                  (if (pair?
                                                                       (unwrap
                                                                        lst_0))
                                                                    (wrap-car
                                                                     lst_0)
                                                                    lst_0)))
                                                             (let ((rest_0
                                                                    (if (pair?
                                                                         (unwrap
                                                                          lst_0))
                                                                      (wrap-cdr
                                                                       lst_0)
                                                                      null)))
                                                               (let ((v_2 v_1))
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (call-with-values
                                                                        (lambda ()
                                                                          (let ((p_1
                                                                                 (unwrap
                                                                                  v_2)))
                                                                            (let ((idss_1
                                                                                   (let ((a_1
                                                                                          (car
                                                                                           p_1)))
                                                                                     a_1)))
                                                                              (let ((rhss_1
                                                                                     (let ((d_1
                                                                                            (cdr
                                                                                             p_1)))
                                                                                       (let ((a_1
                                                                                              (car
                                                                                               (unwrap
                                                                                                d_1))))
                                                                                         a_1))))
                                                                                (let ((idss_2
                                                                                       idss_1))
                                                                                  (values
                                                                                   idss_2
                                                                                   rhss_1))))))
                                                                        (case-lambda
                                                                         ((idss5_0
                                                                           rhss6_0)
                                                                          (values
                                                                           (cons
                                                                            idss5_0
                                                                            idss_0)
                                                                           (cons
                                                                            rhss6_0
                                                                            rhss_0)))
                                                                         (args
                                                                          (raise-binding-result-arity-error
                                                                           2
                                                                           args)))))
                                                                     (case-lambda
                                                                      ((idss_1
                                                                        rhss_1)
                                                                       (values
                                                                        idss_1
                                                                        rhss_1))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args)))))
                                                                  (case-lambda
                                                                   ((idss_1
                                                                     rhss_1)
                                                                    (for-loop_0
                                                                     idss_1
                                                                     rhss_1
                                                                     rest_0))
                                                                   (args
                                                                    (raise-binding-result-arity-error
                                                                     2
                                                                     args)))))))
                                                           (values
                                                            idss_0
                                                            rhss_0)))))))
                                                  (for-loop_0 null null a_0))))
                                             (case-lambda
                                              ((idss_0 rhss_0)
                                               (let ((app_0
                                                      (reverse$1 idss_0)))
                                                 (values
                                                  app_0
                                                  (reverse$1 rhss_0))))
                                              (args
                                               (raise-binding-result-arity-error
                                                2
                                                args))))))
                                        (case-lambda
                                         ((idss_0 rhss_0)
                                          (let ((bodys_0
                                                 (let ((d_1 (cdr p_0)))
                                                   (unwrap-list d_1))))
                                            (let ((idss_1 idss_0)
                                                  (rhss_1 rhss_0))
                                              (values idss_1 rhss_1 bodys_0))))
                                         (args
                                          (raise-binding-result-arity-error
                                           2
                                           args)))))))
                                 (case-lambda
                                  ((idss_0 rhss_0 bodys_0)
                                   (let ((app_0
                                          (reverse$1
                                           (begin
                                             (letrec*
                                              ((for-loop_0
                                                (|#%name|
                                                 for-loop
                                                 (lambda (fold-var_0
                                                          lst_0
                                                          lst_1)
                                                   (begin
                                                     (if (if (pair? lst_0)
                                                           (pair? lst_1)
                                                           #f)
                                                       (let ((ids_0
                                                              (unsafe-car
                                                               lst_0)))
                                                         (let ((rest_0
                                                                (unsafe-cdr
                                                                 lst_0)))
                                                           (let ((rhs_0
                                                                  (unsafe-car
                                                                   lst_1)))
                                                             (let ((rest_1
                                                                    (unsafe-cdr
                                                                     lst_1)))
                                                               (let ((fold-var_1
                                                                      (let ((fold-var_1
                                                                             (cons
                                                                              (list
                                                                               ids_0
                                                                               (convert_0
                                                                                add-lifted_0
                                                                                datum-intern?_0
                                                                                for-cify?_0
                                                                                lifted-eq-constants_0
                                                                                lifted-equal-constants_0
                                                                                rhs_0))
                                                                              fold-var_0)))
                                                                        (values
                                                                         fold-var_1))))
                                                                 (for-loop_0
                                                                  fold-var_1
                                                                  rest_0
                                                                  rest_1))))))
                                                       fold-var_0))))))
                                              (for-loop_0
                                               null
                                               idss_0
                                               rhss_0))))))
                                     (list*
                                      'letrec-values
                                      app_0
                                      (convert-body_0
                                       add-lifted_0
                                       datum-intern?_0
                                       for-cify?_0
                                       lifted-eq-constants_0
                                       lifted-equal-constants_0
                                       bodys_0))))
                                  (args
                                   (raise-binding-result-arity-error 3 args))))
                                (if (if (eq? 'if hd_0)
                                      (let ((a_0 (cdr (unwrap v_0))))
                                        (let ((p_0 (unwrap a_0)))
                                          (if (pair? p_0)
                                            (let ((a_1 (cdr p_0)))
                                              (let ((p_1 (unwrap a_1)))
                                                (if (pair? p_1)
                                                  (let ((a_2 (cdr p_1)))
                                                    (let ((p_2 (unwrap a_2)))
                                                      (if (pair? p_2)
                                                        (let ((a_3 (cdr p_2)))
                                                          (let ((app_0
                                                                 (unwrap '())))
                                                            (eq?
                                                             app_0
                                                             (unwrap a_3))))
                                                        #f)))
                                                  #f)))
                                            #f)))
                                      #f)
                                  (call-with-values
                                   (lambda ()
                                     (let ((d_0 (cdr (unwrap v_0))))
                                       (let ((p_0 (unwrap d_0)))
                                         (let ((tst_0
                                                (let ((a_0 (car p_0))) a_0)))
                                           (call-with-values
                                            (lambda ()
                                              (let ((d_1 (cdr p_0)))
                                                (let ((p_1 (unwrap d_1)))
                                                  (let ((thn_0
                                                         (let ((a_0 (car p_1)))
                                                           a_0)))
                                                    (let ((els_0
                                                           (let ((d_2
                                                                  (cdr p_1)))
                                                             (let ((a_0
                                                                    (car
                                                                     (unwrap
                                                                      d_2))))
                                                               a_0))))
                                                      (let ((thn_1 thn_0))
                                                        (values
                                                         thn_1
                                                         els_0)))))))
                                            (case-lambda
                                             ((thn_0 els_0)
                                              (let ((tst_1 tst_0))
                                                (values tst_1 thn_0 els_0)))
                                             (args
                                              (raise-binding-result-arity-error
                                               2
                                               args))))))))
                                   (case-lambda
                                    ((tst_0 thn_0 els_0)
                                     (let ((app_0
                                            (convert_0
                                             add-lifted_0
                                             datum-intern?_0
                                             for-cify?_0
                                             lifted-eq-constants_0
                                             lifted-equal-constants_0
                                             tst_0)))
                                       (let ((app_1
                                              (convert_0
                                               add-lifted_0
                                               datum-intern?_0
                                               for-cify?_0
                                               lifted-eq-constants_0
                                               lifted-equal-constants_0
                                               thn_0)))
                                         (list
                                          'if
                                          app_0
                                          app_1
                                          (convert_0
                                           add-lifted_0
                                           datum-intern?_0
                                           for-cify?_0
                                           lifted-eq-constants_0
                                           lifted-equal-constants_0
                                           els_0)))))
                                    (args
                                     (raise-binding-result-arity-error
                                      3
                                      args))))
                                  (if (if (eq? 'with-continuation-mark* hd_0)
                                        (let ((a_0 (cdr (unwrap v_0))))
                                          (let ((p_0 (unwrap a_0)))
                                            (if (pair? p_0)
                                              (let ((a_1 (cdr p_0)))
                                                (let ((p_1 (unwrap a_1)))
                                                  (if (pair? p_1)
                                                    (let ((a_2 (cdr p_1)))
                                                      (let ((p_2 (unwrap a_2)))
                                                        (if (pair? p_2)
                                                          (let ((a_3
                                                                 (cdr p_2)))
                                                            (let ((p_3
                                                                   (unwrap
                                                                    a_3)))
                                                              (if (pair? p_3)
                                                                (let ((a_4
                                                                       (cdr
                                                                        p_3)))
                                                                  (let ((app_0
                                                                         (unwrap
                                                                          '())))
                                                                    (eq?
                                                                     app_0
                                                                     (unwrap
                                                                      a_4))))
                                                                #f)))
                                                          #f)))
                                                    #f)))
                                              #f)))
                                        #f)
                                    (call-with-values
                                     (lambda ()
                                       (let ((d_0 (cdr (unwrap v_0))))
                                         (let ((p_0 (unwrap d_0)))
                                           (let ((mode_0
                                                  (let ((a_0 (car p_0))) a_0)))
                                             (call-with-values
                                              (lambda ()
                                                (let ((d_1 (cdr p_0)))
                                                  (let ((p_1 (unwrap d_1)))
                                                    (let ((key_0
                                                           (let ((a_0
                                                                  (car p_1)))
                                                             a_0)))
                                                      (call-with-values
                                                       (lambda ()
                                                         (let ((d_2 (cdr p_1)))
                                                           (let ((p_2
                                                                  (unwrap
                                                                   d_2)))
                                                             (let ((val_0
                                                                    (let ((a_0
                                                                           (car
                                                                            p_2)))
                                                                      a_0)))
                                                               (let ((body_0
                                                                      (let ((d_3
                                                                             (cdr
                                                                              p_2)))
                                                                        (let ((a_0
                                                                               (car
                                                                                (unwrap
                                                                                 d_3))))
                                                                          a_0))))
                                                                 (let ((val_1
                                                                        val_0))
                                                                   (values
                                                                    val_1
                                                                    body_0)))))))
                                                       (case-lambda
                                                        ((val_0 body_0)
                                                         (let ((key_1 key_0))
                                                           (values
                                                            key_1
                                                            val_0
                                                            body_0)))
                                                        (args
                                                         (raise-binding-result-arity-error
                                                          2
                                                          args))))))))
                                              (case-lambda
                                               ((key_0 val_0 body_0)
                                                (let ((mode_1 mode_0))
                                                  (values
                                                   mode_1
                                                   key_0
                                                   val_0
                                                   body_0)))
                                               (args
                                                (raise-binding-result-arity-error
                                                 3
                                                 args))))))))
                                     (case-lambda
                                      ((mode_0 key_0 val_0 body_0)
                                       (let ((app_0
                                              (convert_0
                                               add-lifted_0
                                               datum-intern?_0
                                               for-cify?_0
                                               lifted-eq-constants_0
                                               lifted-equal-constants_0
                                               key_0)))
                                         (let ((app_1
                                                (convert_0
                                                 add-lifted_0
                                                 datum-intern?_0
                                                 for-cify?_0
                                                 lifted-eq-constants_0
                                                 lifted-equal-constants_0
                                                 val_0)))
                                           (list
                                            'with-continuation-mark*
                                            mode_0
                                            app_0
                                            app_1
                                            (convert_0
                                             add-lifted_0
                                             datum-intern?_0
                                             for-cify?_0
                                             lifted-eq-constants_0
                                             lifted-equal-constants_0
                                             body_0)))))
                                      (args
                                       (raise-binding-result-arity-error
                                        4
                                        args))))
                                    (if (if (eq? 'begin hd_0)
                                          (let ((a_0 (cdr (unwrap v_0))))
                                            (wrap-list? a_0))
                                          #f)
                                      (let ((exps_0
                                             (let ((d_0 (cdr (unwrap v_0))))
                                               (unwrap-list d_0))))
                                        (list*
                                         'begin
                                         (convert-body_0
                                          add-lifted_0
                                          datum-intern?_0
                                          for-cify?_0
                                          lifted-eq-constants_0
                                          lifted-equal-constants_0
                                          exps_0)))
                                      (if (if (eq? 'begin0 hd_0)
                                            (let ((a_0 (cdr (unwrap v_0))))
                                              (wrap-list? a_0))
                                            #f)
                                        (let ((exps_0
                                               (let ((d_0 (cdr (unwrap v_0))))
                                                 (unwrap-list d_0))))
                                          (list*
                                           'begin0
                                           (convert-body_0
                                            add-lifted_0
                                            datum-intern?_0
                                            for-cify?_0
                                            lifted-eq-constants_0
                                            lifted-equal-constants_0
                                            exps_0)))
                                        (if (if (eq? 'set! hd_0)
                                              (let ((a_0 (cdr (unwrap v_0))))
                                                (let ((p_0 (unwrap a_0)))
                                                  (if (pair? p_0)
                                                    (let ((a_1 (cdr p_0)))
                                                      (let ((p_1 (unwrap a_1)))
                                                        (if (pair? p_1)
                                                          (let ((a_2
                                                                 (cdr p_1)))
                                                            (let ((app_0
                                                                   (unwrap
                                                                    '())))
                                                              (eq?
                                                               app_0
                                                               (unwrap a_2))))
                                                          #f)))
                                                    #f)))
                                              #f)
                                          (call-with-values
                                           (lambda ()
                                             (let ((d_0 (cdr (unwrap v_0))))
                                               (let ((p_0 (unwrap d_0)))
                                                 (let ((id_0
                                                        (let ((a_0 (car p_0)))
                                                          a_0)))
                                                   (let ((rhs_0
                                                          (let ((d_1
                                                                 (cdr p_0)))
                                                            (let ((a_0
                                                                   (car
                                                                    (unwrap
                                                                     d_1))))
                                                              a_0))))
                                                     (let ((id_1 id_0))
                                                       (values
                                                        id_1
                                                        rhs_0)))))))
                                           (case-lambda
                                            ((id_0 rhs_0)
                                             (list
                                              'set!
                                              id_0
                                              (convert_0
                                               add-lifted_0
                                               datum-intern?_0
                                               for-cify?_0
                                               lifted-eq-constants_0
                                               lifted-equal-constants_0
                                               rhs_0)))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args))))
                                          (if (if (eq?
                                                   '|#%variable-reference|
                                                   hd_0)
                                                (let ((a_0 (cdr (unwrap v_0))))
                                                  (let ((app_0 (unwrap '())))
                                                    (eq? app_0 (unwrap a_0))))
                                                #f)
                                            v_0
                                            (if (if (eq?
                                                     '|#%variable-reference|
                                                     hd_0)
                                                  (let ((a_0
                                                         (cdr (unwrap v_0))))
                                                    (let ((p_0 (unwrap a_0)))
                                                      (if (pair? p_0)
                                                        (let ((a_1 (cdr p_0)))
                                                          (let ((app_0
                                                                 (unwrap '())))
                                                            (eq?
                                                             app_0
                                                             (unwrap a_1))))
                                                        #f)))
                                                  #f)
                                              v_0
                                              (if (let ((p_0 (unwrap v_0)))
                                                    (if (pair? p_0)
                                                      (let ((a_0 (cdr p_0)))
                                                        (wrap-list? a_0))
                                                      #f))
                                                (call-with-values
                                                 (lambda ()
                                                   (let ((p_0 (unwrap v_0)))
                                                     (let ((rator_0
                                                            (let ((a_0
                                                                   (car p_0)))
                                                              a_0)))
                                                       (let ((exps_0
                                                              (let ((d_0
                                                                     (cdr
                                                                      p_0)))
                                                                (unwrap-list
                                                                 d_0))))
                                                         (let ((rator_1
                                                                rator_0))
                                                           (values
                                                            rator_1
                                                            exps_0))))))
                                                 (case-lambda
                                                  ((rator_0 exps_0)
                                                   (let ((app_0
                                                          (convert_0
                                                           add-lifted_0
                                                           datum-intern?_0
                                                           for-cify?_0
                                                           lifted-eq-constants_0
                                                           lifted-equal-constants_0
                                                           rator_0)))
                                                     (list*
                                                      app_0
                                                      (convert-body_0
                                                       add-lifted_0
                                                       datum-intern?_0
                                                       for-cify?_0
                                                       lifted-eq-constants_0
                                                       lifted-equal-constants_0
                                                       exps_0))))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    2
                                                    args))))
                                                (if (if (not (symbol? v_0))
                                                      (lift-quoted?
                                                       v_0
                                                       for-cify?_0
                                                       datum-intern?_0)
                                                      #f)
                                                  (convert_0
                                                   add-lifted_0
                                                   datum-intern?_0
                                                   for-cify?_0
                                                   lifted-eq-constants_0
                                                   lifted-equal-constants_0
                                                   (list 'quote v_0))
                                                  v_0))))))))))))))))))))))
    (lambda (bodys_0 for-cify?_0 datum-intern?_0)
      (let ((lifted-eq-constants_0 (make-hasheq)))
        (let ((lifted-equal-constants_0 (make-hash)))
          (let ((lift-bindings_0 null))
            (let ((lifts-count_0 0))
              (let ((add-lifted_0
                     (|#%name|
                      add-lifted
                      (lambda (rhs_0)
                        (begin
                          (let ((id_0
                                 (string->symbol
                                  (format "q:~a" lifts-count_0))))
                            (begin
                              (set! lifts-count_0 (add1 lifts-count_0))
                              (set! lift-bindings_0
                                (cons (list id_0 rhs_0) lift-bindings_0))
                              id_0)))))))
                (let ((new-bodys_0
                       (reverse$1
                        (begin
                          (letrec*
                           ((for-loop_0
                             (|#%name|
                              for-loop
                              (lambda (fold-var_0 lst_0)
                                (begin
                                  (if (pair? lst_0)
                                    (let ((v_0 (unsafe-car lst_0)))
                                      (let ((rest_0 (unsafe-cdr lst_0)))
                                        (let ((fold-var_1
                                               (let ((fold-var_1
                                                      (cons
                                                       (if (convert-any?
                                                            v_0
                                                            for-cify?_0
                                                            datum-intern?_0)
                                                         (convert_0
                                                          add-lifted_0
                                                          datum-intern?_0
                                                          for-cify?_0
                                                          lifted-eq-constants_0
                                                          lifted-equal-constants_0
                                                          v_0)
                                                         v_0)
                                                       fold-var_0)))
                                                 (values fold-var_1))))
                                          (for-loop_0 fold-var_1 rest_0))))
                                    fold-var_0))))))
                           (for-loop_0 null bodys_0))))))
                  (values new-bodys_0 (reverse$1 lift-bindings_0)))))))))))
(define convert-any?
  (letrec ((convert-any?_0
            (|#%name|
             convert-any?
             (lambda (datum-intern?_0 for-cify?_0 v_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap v_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'quote hd_0)
                         (let ((a_0 (cdr (unwrap v_0))))
                           (let ((p_0 (unwrap a_0)))
                             (if (pair? p_0)
                               (let ((a_1 (cdr p_0)))
                                 (let ((app_0 (unwrap '())))
                                   (eq? app_0 (unwrap a_1))))
                               #f)))
                         #f)
                     (let ((q_0
                            (let ((d_0 (cdr (unwrap v_0))))
                              (let ((a_0 (car (unwrap d_0)))) a_0))))
                       (lift-quoted? q_0 for-cify?_0 datum-intern?_0))
                     (if (if (eq? 'lambda hd_0)
                           (let ((a_0 (cdr (unwrap v_0))))
                             (let ((p_0 (unwrap a_0)))
                               (if (pair? p_0)
                                 (let ((a_1 (cdr p_0))) (wrap-list? a_1))
                                 #f)))
                           #f)
                       (call-with-values
                        (lambda ()
                          (let ((d_0 (cdr (unwrap v_0))))
                            (let ((p_0 (unwrap d_0)))
                              (let ((formals_0 (let ((a_0 (car p_0))) a_0)))
                                (let ((body_0
                                       (let ((d_1 (cdr p_0)))
                                         (unwrap-list d_1))))
                                  (let ((formals_1 formals_0))
                                    (values formals_1 body_0)))))))
                        (case-lambda
                         ((formals_0 body_0)
                          (convert-any?_0 datum-intern?_0 for-cify?_0 body_0))
                         (args (raise-binding-result-arity-error 2 args))))
                       (if (if (eq? 'case-lambda hd_0)
                             (let ((a_0 (cdr (unwrap v_0))))
                               (if (wrap-list? a_0)
                                 (begin
                                   (letrec*
                                    ((for-loop_0
                                      (|#%name|
                                       for-loop
                                       (lambda (result_0 lst_0)
                                         (begin
                                           (if (not (null? (unwrap lst_0)))
                                             (let ((v_1
                                                    (if (pair? (unwrap lst_0))
                                                      (wrap-car lst_0)
                                                      lst_0)))
                                               (let ((rest_0
                                                      (if (pair?
                                                           (unwrap lst_0))
                                                        (wrap-cdr lst_0)
                                                        null)))
                                                 (let ((v_2 v_1))
                                                   (let ((result_1
                                                          (let ((result_1
                                                                 (let ((p_0
                                                                        (unwrap
                                                                         v_2)))
                                                                   (if (pair?
                                                                        p_0)
                                                                     (let ((a_1
                                                                            (cdr
                                                                             p_0)))
                                                                       (wrap-list?
                                                                        a_1))
                                                                     #f))))
                                                            (values
                                                             result_1))))
                                                     (if (if (not
                                                              (let ((x_0
                                                                     (list
                                                                      v_2)))
                                                                (not
                                                                 result_1)))
                                                           #t
                                                           #f)
                                                       (for-loop_0
                                                        result_1
                                                        rest_0)
                                                       result_1)))))
                                             result_0))))))
                                    (for-loop_0 #t a_0)))
                                 #f))
                             #f)
                         (call-with-values
                          (lambda ()
                            (let ((d_0 (cdr (unwrap v_0))))
                              (call-with-values
                               (lambda ()
                                 (begin
                                   (letrec*
                                    ((for-loop_0
                                      (|#%name|
                                       for-loop
                                       (lambda (formalss_0 bodys_0 lst_0)
                                         (begin
                                           (if (not (null? (unwrap lst_0)))
                                             (let ((v_1
                                                    (if (pair? (unwrap lst_0))
                                                      (wrap-car lst_0)
                                                      lst_0)))
                                               (let ((rest_0
                                                      (if (pair?
                                                           (unwrap lst_0))
                                                        (wrap-cdr lst_0)
                                                        null)))
                                                 (let ((v_2 v_1))
                                                   (call-with-values
                                                    (lambda ()
                                                      (call-with-values
                                                       (lambda ()
                                                         (call-with-values
                                                          (lambda ()
                                                            (let ((p_0
                                                                   (unwrap
                                                                    v_2)))
                                                              (let ((formalss_1
                                                                     (let ((a_0
                                                                            (car
                                                                             p_0)))
                                                                       a_0)))
                                                                (let ((bodys_1
                                                                       (let ((d_1
                                                                              (cdr
                                                                               p_0)))
                                                                         (unwrap-list
                                                                          d_1))))
                                                                  (let ((formalss_2
                                                                         formalss_1))
                                                                    (values
                                                                     formalss_2
                                                                     bodys_1))))))
                                                          (case-lambda
                                                           ((formalss7_0
                                                             bodys8_0)
                                                            (values
                                                             (cons
                                                              formalss7_0
                                                              formalss_0)
                                                             (cons
                                                              bodys8_0
                                                              bodys_0)))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             2
                                                             args)))))
                                                       (case-lambda
                                                        ((formalss_1 bodys_1)
                                                         (values
                                                          formalss_1
                                                          bodys_1))
                                                        (args
                                                         (raise-binding-result-arity-error
                                                          2
                                                          args)))))
                                                    (case-lambda
                                                     ((formalss_1 bodys_1)
                                                      (for-loop_0
                                                       formalss_1
                                                       bodys_1
                                                       rest_0))
                                                     (args
                                                      (raise-binding-result-arity-error
                                                       2
                                                       args)))))))
                                             (values formalss_0 bodys_0)))))))
                                    (for-loop_0 null null d_0))))
                               (case-lambda
                                ((formalss_0 bodys_0)
                                 (let ((app_0 (reverse$1 formalss_0)))
                                   (values app_0 (reverse$1 bodys_0))))
                                (args
                                 (raise-binding-result-arity-error 2 args))))))
                          (case-lambda
                           ((formalss_0 bodys_0)
                            (convert-any?_0
                             datum-intern?_0
                             for-cify?_0
                             bodys_0))
                           (args (raise-binding-result-arity-error 2 args))))
                         (if (if (eq? 'define-values hd_0)
                               (let ((a_0 (cdr (unwrap v_0))))
                                 (let ((p_0 (unwrap a_0)))
                                   (if (pair? p_0)
                                     (let ((a_1 (cdr p_0)))
                                       (let ((p_1 (unwrap a_1)))
                                         (if (pair? p_1)
                                           (let ((a_2 (cdr p_1)))
                                             (let ((app_0 (unwrap '())))
                                               (eq? app_0 (unwrap a_2))))
                                           #f)))
                                     #f)))
                               #f)
                           (call-with-values
                            (lambda ()
                              (let ((d_0 (cdr (unwrap v_0))))
                                (let ((p_0 (unwrap d_0)))
                                  (let ((ids_0 (let ((a_0 (car p_0))) a_0)))
                                    (let ((rhs_0
                                           (let ((d_1 (cdr p_0)))
                                             (let ((a_0 (car (unwrap d_1))))
                                               a_0))))
                                      (let ((ids_1 ids_0))
                                        (values ids_1 rhs_0)))))))
                            (case-lambda
                             ((ids_0 rhs_0)
                              (convert-any?_0
                               datum-intern?_0
                               for-cify?_0
                               rhs_0))
                             (args (raise-binding-result-arity-error 2 args))))
                           (if (if (eq? 'let-values hd_0)
                                 (let ((a_0 (cdr (unwrap v_0))))
                                   (let ((p_0 (unwrap a_0)))
                                     (if (pair? p_0)
                                       (if (let ((a_1 (car p_0)))
                                             (if (wrap-list? a_1)
                                               (begin
                                                 (letrec*
                                                  ((for-loop_0
                                                    (|#%name|
                                                     for-loop
                                                     (lambda (result_0 lst_0)
                                                       (begin
                                                         (if (not
                                                              (null?
                                                               (unwrap lst_0)))
                                                           (let ((v_1
                                                                  (if (pair?
                                                                       (unwrap
                                                                        lst_0))
                                                                    (wrap-car
                                                                     lst_0)
                                                                    lst_0)))
                                                             (let ((rest_0
                                                                    (if (pair?
                                                                         (unwrap
                                                                          lst_0))
                                                                      (wrap-cdr
                                                                       lst_0)
                                                                      null)))
                                                               (let ((v_2 v_1))
                                                                 (let ((result_1
                                                                        (let ((result_1
                                                                               (let ((p_1
                                                                                      (unwrap
                                                                                       v_2)))
                                                                                 (if (pair?
                                                                                      p_1)
                                                                                   (let ((a_2
                                                                                          (cdr
                                                                                           p_1)))
                                                                                     (let ((p_2
                                                                                            (unwrap
                                                                                             a_2)))
                                                                                       (if (pair?
                                                                                            p_2)
                                                                                         (let ((a_3
                                                                                                (cdr
                                                                                                 p_2)))
                                                                                           (let ((app_0
                                                                                                  (unwrap
                                                                                                   '())))
                                                                                             (eq?
                                                                                              app_0
                                                                                              (unwrap
                                                                                               a_3))))
                                                                                         #f)))
                                                                                   #f))))
                                                                          (values
                                                                           result_1))))
                                                                   (if (if (not
                                                                            (let ((x_0
                                                                                   (list
                                                                                    v_2)))
                                                                              (not
                                                                               result_1)))
                                                                         #t
                                                                         #f)
                                                                     (for-loop_0
                                                                      result_1
                                                                      rest_0)
                                                                     result_1)))))
                                                           result_0))))))
                                                  (for-loop_0 #t a_1)))
                                               #f))
                                         (let ((a_1 (cdr p_0)))
                                           (wrap-list? a_1))
                                         #f)
                                       #f)))
                                 #f)
                             (call-with-values
                              (lambda ()
                                (let ((d_0 (cdr (unwrap v_0))))
                                  (let ((p_0 (unwrap d_0)))
                                    (call-with-values
                                     (lambda ()
                                       (let ((a_0 (car p_0)))
                                         (call-with-values
                                          (lambda ()
                                            (begin
                                              (letrec*
                                               ((for-loop_0
                                                 (|#%name|
                                                  for-loop
                                                  (lambda (idss_0 rhss_0 lst_0)
                                                    (begin
                                                      (if (not
                                                           (null?
                                                            (unwrap lst_0)))
                                                        (let ((v_1
                                                               (if (pair?
                                                                    (unwrap
                                                                     lst_0))
                                                                 (wrap-car
                                                                  lst_0)
                                                                 lst_0)))
                                                          (let ((rest_0
                                                                 (if (pair?
                                                                      (unwrap
                                                                       lst_0))
                                                                   (wrap-cdr
                                                                    lst_0)
                                                                   null)))
                                                            (let ((v_2 v_1))
                                                              (call-with-values
                                                               (lambda ()
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (let ((p_1
                                                                              (unwrap
                                                                               v_2)))
                                                                         (let ((idss_1
                                                                                (let ((a_1
                                                                                       (car
                                                                                        p_1)))
                                                                                  a_1)))
                                                                           (let ((rhss_1
                                                                                  (let ((d_1
                                                                                         (cdr
                                                                                          p_1)))
                                                                                    (let ((a_1
                                                                                           (car
                                                                                            (unwrap
                                                                                             d_1))))
                                                                                      a_1))))
                                                                             (let ((idss_2
                                                                                    idss_1))
                                                                               (values
                                                                                idss_2
                                                                                rhss_1))))))
                                                                     (case-lambda
                                                                      ((idss9_0
                                                                        rhss10_0)
                                                                       (values
                                                                        (cons
                                                                         idss9_0
                                                                         idss_0)
                                                                        (cons
                                                                         rhss10_0
                                                                         rhss_0)))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args)))))
                                                                  (case-lambda
                                                                   ((idss_1
                                                                     rhss_1)
                                                                    (values
                                                                     idss_1
                                                                     rhss_1))
                                                                   (args
                                                                    (raise-binding-result-arity-error
                                                                     2
                                                                     args)))))
                                                               (case-lambda
                                                                ((idss_1
                                                                  rhss_1)
                                                                 (for-loop_0
                                                                  idss_1
                                                                  rhss_1
                                                                  rest_0))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))))
                                                        (values
                                                         idss_0
                                                         rhss_0)))))))
                                               (for-loop_0 null null a_0))))
                                          (case-lambda
                                           ((idss_0 rhss_0)
                                            (let ((app_0 (reverse$1 idss_0)))
                                              (values
                                               app_0
                                               (reverse$1 rhss_0))))
                                           (args
                                            (raise-binding-result-arity-error
                                             2
                                             args))))))
                                     (case-lambda
                                      ((idss_0 rhss_0)
                                       (let ((bodys_0
                                              (let ((d_1 (cdr p_0)))
                                                (unwrap-list d_1))))
                                         (let ((idss_1 idss_0) (rhss_1 rhss_0))
                                           (values idss_1 rhss_1 bodys_0))))
                                      (args
                                       (raise-binding-result-arity-error
                                        2
                                        args)))))))
                              (case-lambda
                               ((idss_0 rhss_0 bodys_0)
                                (let ((or-part_0
                                       (convert-any?_0
                                        datum-intern?_0
                                        for-cify?_0
                                        rhss_0)))
                                  (if or-part_0
                                    or-part_0
                                    (convert-any?_0
                                     datum-intern?_0
                                     for-cify?_0
                                     bodys_0))))
                               (args
                                (raise-binding-result-arity-error 3 args))))
                             (if (if (eq? 'letrec-values hd_0)
                                   (let ((a_0 (cdr (unwrap v_0))))
                                     (let ((p_0 (unwrap a_0)))
                                       (if (pair? p_0)
                                         (if (let ((a_1 (car p_0)))
                                               (if (wrap-list? a_1)
                                                 (begin
                                                   (letrec*
                                                    ((for-loop_0
                                                      (|#%name|
                                                       for-loop
                                                       (lambda (result_0 lst_0)
                                                         (begin
                                                           (if (not
                                                                (null?
                                                                 (unwrap
                                                                  lst_0)))
                                                             (let ((v_1
                                                                    (if (pair?
                                                                         (unwrap
                                                                          lst_0))
                                                                      (wrap-car
                                                                       lst_0)
                                                                      lst_0)))
                                                               (let ((rest_0
                                                                      (if (pair?
                                                                           (unwrap
                                                                            lst_0))
                                                                        (wrap-cdr
                                                                         lst_0)
                                                                        null)))
                                                                 (let ((v_2
                                                                        v_1))
                                                                   (let ((result_1
                                                                          (let ((result_1
                                                                                 (let ((p_1
                                                                                        (unwrap
                                                                                         v_2)))
                                                                                   (if (pair?
                                                                                        p_1)
                                                                                     (let ((a_2
                                                                                            (cdr
                                                                                             p_1)))
                                                                                       (let ((p_2
                                                                                              (unwrap
                                                                                               a_2)))
                                                                                         (if (pair?
                                                                                              p_2)
                                                                                           (let ((a_3
                                                                                                  (cdr
                                                                                                   p_2)))
                                                                                             (let ((app_0
                                                                                                    (unwrap
                                                                                                     '())))
                                                                                               (eq?
                                                                                                app_0
                                                                                                (unwrap
                                                                                                 a_3))))
                                                                                           #f)))
                                                                                     #f))))
                                                                            (values
                                                                             result_1))))
                                                                     (if (if (not
                                                                              (let ((x_0
                                                                                     (list
                                                                                      v_2)))
                                                                                (not
                                                                                 result_1)))
                                                                           #t
                                                                           #f)
                                                                       (for-loop_0
                                                                        result_1
                                                                        rest_0)
                                                                       result_1)))))
                                                             result_0))))))
                                                    (for-loop_0 #t a_1)))
                                                 #f))
                                           (let ((a_1 (cdr p_0)))
                                             (wrap-list? a_1))
                                           #f)
                                         #f)))
                                   #f)
                               (call-with-values
                                (lambda ()
                                  (let ((d_0 (cdr (unwrap v_0))))
                                    (let ((p_0 (unwrap d_0)))
                                      (call-with-values
                                       (lambda ()
                                         (let ((a_0 (car p_0)))
                                           (call-with-values
                                            (lambda ()
                                              (begin
                                                (letrec*
                                                 ((for-loop_0
                                                   (|#%name|
                                                    for-loop
                                                    (lambda (idss_0
                                                             rhss_0
                                                             lst_0)
                                                      (begin
                                                        (if (not
                                                             (null?
                                                              (unwrap lst_0)))
                                                          (let ((v_1
                                                                 (if (pair?
                                                                      (unwrap
                                                                       lst_0))
                                                                   (wrap-car
                                                                    lst_0)
                                                                   lst_0)))
                                                            (let ((rest_0
                                                                   (if (pair?
                                                                        (unwrap
                                                                         lst_0))
                                                                     (wrap-cdr
                                                                      lst_0)
                                                                     null)))
                                                              (let ((v_2 v_1))
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (call-with-values
                                                                    (lambda ()
                                                                      (call-with-values
                                                                       (lambda ()
                                                                         (let ((p_1
                                                                                (unwrap
                                                                                 v_2)))
                                                                           (let ((idss_1
                                                                                  (let ((a_1
                                                                                         (car
                                                                                          p_1)))
                                                                                    a_1)))
                                                                             (let ((rhss_1
                                                                                    (let ((d_1
                                                                                           (cdr
                                                                                            p_1)))
                                                                                      (let ((a_1
                                                                                             (car
                                                                                              (unwrap
                                                                                               d_1))))
                                                                                        a_1))))
                                                                               (let ((idss_2
                                                                                      idss_1))
                                                                                 (values
                                                                                  idss_2
                                                                                  rhss_1))))))
                                                                       (case-lambda
                                                                        ((idss11_0
                                                                          rhss12_0)
                                                                         (values
                                                                          (cons
                                                                           idss11_0
                                                                           idss_0)
                                                                          (cons
                                                                           rhss12_0
                                                                           rhss_0)))
                                                                        (args
                                                                         (raise-binding-result-arity-error
                                                                          2
                                                                          args)))))
                                                                    (case-lambda
                                                                     ((idss_1
                                                                       rhss_1)
                                                                      (values
                                                                       idss_1
                                                                       rhss_1))
                                                                     (args
                                                                      (raise-binding-result-arity-error
                                                                       2
                                                                       args)))))
                                                                 (case-lambda
                                                                  ((idss_1
                                                                    rhss_1)
                                                                   (for-loop_0
                                                                    idss_1
                                                                    rhss_1
                                                                    rest_0))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    2
                                                                    args)))))))
                                                          (values
                                                           idss_0
                                                           rhss_0)))))))
                                                 (for-loop_0 null null a_0))))
                                            (case-lambda
                                             ((idss_0 rhss_0)
                                              (let ((app_0 (reverse$1 idss_0)))
                                                (values
                                                 app_0
                                                 (reverse$1 rhss_0))))
                                             (args
                                              (raise-binding-result-arity-error
                                               2
                                               args))))))
                                       (case-lambda
                                        ((idss_0 rhss_0)
                                         (let ((bodys_0
                                                (let ((d_1 (cdr p_0)))
                                                  (unwrap-list d_1))))
                                           (let ((idss_1 idss_0)
                                                 (rhss_1 rhss_0))
                                             (values idss_1 rhss_1 bodys_0))))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args)))))))
                                (case-lambda
                                 ((idss_0 rhss_0 bodys_0)
                                  (let ((or-part_0
                                         (convert-any?_0
                                          datum-intern?_0
                                          for-cify?_0
                                          rhss_0)))
                                    (if or-part_0
                                      or-part_0
                                      (convert-any?_0
                                       datum-intern?_0
                                       for-cify?_0
                                       bodys_0))))
                                 (args
                                  (raise-binding-result-arity-error 3 args))))
                               (if (if (eq? 'if hd_0)
                                     (let ((a_0 (cdr (unwrap v_0))))
                                       (let ((p_0 (unwrap a_0)))
                                         (if (pair? p_0)
                                           (let ((a_1 (cdr p_0)))
                                             (let ((p_1 (unwrap a_1)))
                                               (if (pair? p_1)
                                                 (let ((a_2 (cdr p_1)))
                                                   (let ((p_2 (unwrap a_2)))
                                                     (if (pair? p_2)
                                                       (let ((a_3 (cdr p_2)))
                                                         (let ((app_0
                                                                (unwrap '())))
                                                           (eq?
                                                            app_0
                                                            (unwrap a_3))))
                                                       #f)))
                                                 #f)))
                                           #f)))
                                     #f)
                                 (call-with-values
                                  (lambda ()
                                    (let ((d_0 (cdr (unwrap v_0))))
                                      (let ((p_0 (unwrap d_0)))
                                        (let ((tst_0
                                               (let ((a_0 (car p_0))) a_0)))
                                          (call-with-values
                                           (lambda ()
                                             (let ((d_1 (cdr p_0)))
                                               (let ((p_1 (unwrap d_1)))
                                                 (let ((thn_0
                                                        (let ((a_0 (car p_1)))
                                                          a_0)))
                                                   (let ((els_0
                                                          (let ((d_2
                                                                 (cdr p_1)))
                                                            (let ((a_0
                                                                   (car
                                                                    (unwrap
                                                                     d_2))))
                                                              a_0))))
                                                     (let ((thn_1 thn_0))
                                                       (values
                                                        thn_1
                                                        els_0)))))))
                                           (case-lambda
                                            ((thn_0 els_0)
                                             (let ((tst_1 tst_0))
                                               (values tst_1 thn_0 els_0)))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args))))))))
                                  (case-lambda
                                   ((tst_0 thn_0 els_0)
                                    (let ((or-part_0
                                           (convert-any?_0
                                            datum-intern?_0
                                            for-cify?_0
                                            tst_0)))
                                      (if or-part_0
                                        or-part_0
                                        (let ((or-part_1
                                               (convert-any?_0
                                                datum-intern?_0
                                                for-cify?_0
                                                thn_0)))
                                          (if or-part_1
                                            or-part_1
                                            (convert-any?_0
                                             datum-intern?_0
                                             for-cify?_0
                                             els_0))))))
                                   (args
                                    (raise-binding-result-arity-error
                                     3
                                     args))))
                                 (if (if (eq? 'with-continuation-mark* hd_0)
                                       (let ((a_0 (cdr (unwrap v_0))))
                                         (let ((p_0 (unwrap a_0)))
                                           (if (pair? p_0)
                                             (let ((a_1 (cdr p_0)))
                                               (let ((p_1 (unwrap a_1)))
                                                 (if (pair? p_1)
                                                   (let ((a_2 (cdr p_1)))
                                                     (let ((p_2 (unwrap a_2)))
                                                       (if (pair? p_2)
                                                         (let ((a_3 (cdr p_2)))
                                                           (let ((p_3
                                                                  (unwrap
                                                                   a_3)))
                                                             (if (pair? p_3)
                                                               (let ((a_4
                                                                      (cdr
                                                                       p_3)))
                                                                 (let ((app_0
                                                                        (unwrap
                                                                         '())))
                                                                   (eq?
                                                                    app_0
                                                                    (unwrap
                                                                     a_4))))
                                                               #f)))
                                                         #f)))
                                                   #f)))
                                             #f)))
                                       #f)
                                   (call-with-values
                                    (lambda ()
                                      (let ((d_0 (cdr (unwrap v_0))))
                                        (let ((d_1 (cdr (unwrap d_0))))
                                          (let ((p_0 (unwrap d_1)))
                                            (let ((key_0
                                                   (let ((a_0 (car p_0)))
                                                     a_0)))
                                              (call-with-values
                                               (lambda ()
                                                 (let ((d_2 (cdr p_0)))
                                                   (let ((p_1 (unwrap d_2)))
                                                     (let ((val_0
                                                            (let ((a_0
                                                                   (car p_1)))
                                                              a_0)))
                                                       (let ((body_0
                                                              (let ((d_3
                                                                     (cdr
                                                                      p_1)))
                                                                (let ((a_0
                                                                       (car
                                                                        (unwrap
                                                                         d_3))))
                                                                  a_0))))
                                                         (let ((val_1 val_0))
                                                           (values
                                                            val_1
                                                            body_0)))))))
                                               (case-lambda
                                                ((val_0 body_0)
                                                 (let ((key_1 key_0))
                                                   (values
                                                    key_1
                                                    val_0
                                                    body_0)))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  2
                                                  args)))))))))
                                    (case-lambda
                                     ((key_0 val_0 body_0)
                                      (let ((or-part_0
                                             (convert-any?_0
                                              datum-intern?_0
                                              for-cify?_0
                                              key_0)))
                                        (if or-part_0
                                          or-part_0
                                          (let ((or-part_1
                                                 (convert-any?_0
                                                  datum-intern?_0
                                                  for-cify?_0
                                                  val_0)))
                                            (if or-part_1
                                              or-part_1
                                              (convert-any?_0
                                               datum-intern?_0
                                               for-cify?_0
                                               body_0))))))
                                     (args
                                      (raise-binding-result-arity-error
                                       3
                                       args))))
                                   (if (if (eq? 'begin hd_0)
                                         (let ((a_0 (cdr (unwrap v_0))))
                                           (wrap-list? a_0))
                                         #f)
                                     (let ((exps_0
                                            (let ((d_0 (cdr (unwrap v_0))))
                                              (unwrap-list d_0))))
                                       (convert-any?_0
                                        datum-intern?_0
                                        for-cify?_0
                                        exps_0))
                                     (if (if (eq? 'begin0 hd_0)
                                           (let ((a_0 (cdr (unwrap v_0))))
                                             (wrap-list? a_0))
                                           #f)
                                       (let ((exps_0
                                              (let ((d_0 (cdr (unwrap v_0))))
                                                (unwrap-list d_0))))
                                         (convert-any?_0
                                          datum-intern?_0
                                          for-cify?_0
                                          exps_0))
                                       (if (if (eq? 'set! hd_0)
                                             (let ((a_0 (cdr (unwrap v_0))))
                                               (let ((p_0 (unwrap a_0)))
                                                 (if (pair? p_0)
                                                   (let ((a_1 (cdr p_0)))
                                                     (let ((p_1 (unwrap a_1)))
                                                       (if (pair? p_1)
                                                         (let ((a_2 (cdr p_1)))
                                                           (let ((app_0
                                                                  (unwrap
                                                                   '())))
                                                             (eq?
                                                              app_0
                                                              (unwrap a_2))))
                                                         #f)))
                                                   #f)))
                                             #f)
                                         (call-with-values
                                          (lambda ()
                                            (let ((d_0 (cdr (unwrap v_0))))
                                              (let ((p_0 (unwrap d_0)))
                                                (let ((id_0
                                                       (let ((a_0 (car p_0)))
                                                         a_0)))
                                                  (let ((rhs_0
                                                         (let ((d_1 (cdr p_0)))
                                                           (let ((a_0
                                                                  (car
                                                                   (unwrap
                                                                    d_1))))
                                                             a_0))))
                                                    (let ((id_1 id_0))
                                                      (values id_1 rhs_0)))))))
                                          (case-lambda
                                           ((id_0 rhs_0)
                                            (convert-any?_0
                                             datum-intern?_0
                                             for-cify?_0
                                             rhs_0))
                                           (args
                                            (raise-binding-result-arity-error
                                             2
                                             args))))
                                         (if (if (eq?
                                                  '|#%variable-reference|
                                                  hd_0)
                                               (let ((a_0 (cdr (unwrap v_0))))
                                                 (let ((app_0 (unwrap '())))
                                                   (eq? app_0 (unwrap a_0))))
                                               #f)
                                           #f
                                           (if (if (eq?
                                                    '|#%variable-reference|
                                                    hd_0)
                                                 (let ((a_0
                                                        (cdr (unwrap v_0))))
                                                   (let ((p_0 (unwrap a_0)))
                                                     (if (pair? p_0)
                                                       (let ((a_1 (cdr p_0)))
                                                         (let ((app_0
                                                                (unwrap '())))
                                                           (eq?
                                                            app_0
                                                            (unwrap a_1))))
                                                       #f)))
                                                 #f)
                                             #f
                                             (if (wrap-list? v_0)
                                               (let ((exps_0
                                                      (unwrap-list v_0)))
                                                 (begin
                                                   (letrec*
                                                    ((for-loop_0
                                                      (|#%name|
                                                       for-loop
                                                       (lambda (result_0 lst_0)
                                                         (begin
                                                           (if (pair? lst_0)
                                                             (let ((exp_0
                                                                    (unsafe-car
                                                                     lst_0)))
                                                               (let ((rest_0
                                                                      (unsafe-cdr
                                                                       lst_0)))
                                                                 (let ((result_1
                                                                        (let ((result_1
                                                                               (convert-any?_0
                                                                                datum-intern?_0
                                                                                for-cify?_0
                                                                                exp_0)))
                                                                          (values
                                                                           result_1))))
                                                                   (if (if (not
                                                                            (let ((x_0
                                                                                   (list
                                                                                    exp_0)))
                                                                              result_1))
                                                                         #t
                                                                         #f)
                                                                     (for-loop_0
                                                                      result_1
                                                                      rest_0)
                                                                     result_1))))
                                                             result_0))))))
                                                    (for-loop_0 #f exps_0))))
                                               (if (not (symbol? v_0))
                                                 (lift-quoted?
                                                  v_0
                                                  for-cify?_0
                                                  datum-intern?_0)
                                                 #f)))))))))))))))))))))
    (lambda (v_0 for-cify?_0 datum-intern?_0)
      (convert-any?_0 datum-intern?_0 for-cify?_0 v_0))))
(define make-construct
  (letrec ((procz1
            (|#%name|
             quote?
             (lambda (e_0)
               (begin (if (pair? e_0) (eq? 'quote (car e_0)) #f)))))
           (check-cycle_0
            (|#%name|
             check-cycle
             (lambda (q_0 seen_0 v_0)
               (begin
                 (begin
                   (if (hash-ref (unsafe-unbox* seen_0) v_0 #f)
                     (raise-arguments-error
                      'compile
                      "cannot compile cyclic value"
                      "value"
                      q_0)
                     (void))
                   (unsafe-set-box*!
                    seen_0
                    (hash-set (unsafe-unbox* seen_0) v_0 #t)))))))
           (done-cycle_0
            (|#%name|
             done-cycle
             (lambda (seen_0 v_0)
               (begin
                 (unsafe-set-box*!
                  seen_0
                  (hash-remove (unsafe-unbox* seen_0) v_0)))))))
    (lambda (q_0
             add-lifted_0
             lifted-eq-constants_0
             lifted-equal-constants_0
             for-cify?_0
             datum-intern?_0)
      (let ((quote?_0 procz1))
        (let ((seen_0 (box hash2610)))
          (if (if (not for-cify?_0) (large-quoted? q_0) #f)
            (let ((id_0 (|#%app| add-lifted_0 (to-fasl1.1 (box q_0) '#() #f))))
              (list 'force-unfasl id_0))
            (letrec*
             ((make-construct_0
               (|#%name|
                make-construct
                (lambda (q_1)
                  (begin
                    (let ((lifted-constants_0
                           (if (let ((or-part_0 (string? q_1)))
                                 (if or-part_0 or-part_0 (bytes? q_1)))
                             lifted-equal-constants_0
                             lifted-eq-constants_0)))
                      (let ((c1_0 (hash-ref lifted-constants_0 q_1 #f)))
                        (if c1_0
                          c1_0
                          (let ((rhs_0
                                 (if (path? q_1)
                                   (if for-cify?_0
                                     (let ((app_0 (path->bytes q_1)))
                                       (list
                                        'bytes->path
                                        app_0
                                        (list
                                         'quote
                                         (path-convention-type q_1))))
                                     q_1)
                                   (if (path-for-srcloc? q_1)
                                     q_1
                                     (if (regexp? q_1)
                                       (let ((app_0
                                              (if (pregexp? q_1)
                                                'pregexp
                                                'regexp)))
                                         (list app_0 (object-name q_1)))
                                       (if (srcloc? q_1)
                                         (let ((app_0
                                                (let ((src_0
                                                       (srcloc-source q_1)))
                                                  (if (if (not for-cify?_0)
                                                        (not
                                                         (let ((or-part_0
                                                                (string?
                                                                 src_0)))
                                                           (if or-part_0
                                                             or-part_0
                                                             (let ((or-part_1
                                                                    (bytes?
                                                                     src_0)))
                                                               (if or-part_1
                                                                 or-part_1
                                                                 (let ((or-part_2
                                                                        (symbol?
                                                                         src_0)))
                                                                   (if or-part_2
                                                                     or-part_2
                                                                     (not
                                                                      src_0))))))))
                                                        #f)
                                                    (make-construct_0
                                                     (path-for-srcloc1.1
                                                      src_0))
                                                    (make-construct_0
                                                     src_0)))))
                                           (let ((app_1
                                                  (make-construct_0
                                                   (srcloc-line q_1))))
                                             (let ((app_2
                                                    (make-construct_0
                                                     (srcloc-column q_1))))
                                               (let ((app_3
                                                      (make-construct_0
                                                       (srcloc-position q_1))))
                                                 (list
                                                  'unsafe-make-srcloc
                                                  app_0
                                                  app_1
                                                  app_2
                                                  app_3
                                                  (make-construct_0
                                                   (srcloc-span q_1)))))))
                                         (if (byte-regexp? q_1)
                                           (let ((app_0
                                                  (if (byte-pregexp? q_1)
                                                    'byte-pregexp
                                                    'byte-regexp)))
                                             (list app_0 (object-name q_1)))
                                           (if (keyword? q_1)
                                             (list
                                              'string->keyword
                                              (keyword->string q_1))
                                             (if (hash? q_1)
                                               (let ((mut?_0
                                                      (not (immutable? q_1))))
                                                 (begin
                                                   (if mut?_0
                                                     (check-cycle_0
                                                      q_0
                                                      seen_0
                                                      q_1)
                                                     (void))
                                                   (let ((new-q_0
                                                          (let ((app_0
                                                                 (if (hash-eq?
                                                                      q_1)
                                                                   'hasheq
                                                                   (if (hash-eqv?
                                                                        q_1)
                                                                     'hasheqv
                                                                     'hash))))
                                                            (list*
                                                             app_0
                                                             (apply
                                                              append
                                                              (reverse$1
                                                               (begin
                                                                 (letrec*
                                                                  ((for-loop_0
                                                                    (|#%name|
                                                                     for-loop
                                                                     (lambda (fold-var_0
                                                                              i_0)
                                                                       (begin
                                                                         (if i_0
                                                                           (call-with-values
                                                                            (lambda ()
                                                                              (hash-iterate-key+value
                                                                               q_1
                                                                               i_0))
                                                                            (case-lambda
                                                                             ((k_0
                                                                               v_0)
                                                                              (let ((fold-var_1
                                                                                     (let ((fold-var_1
                                                                                            (cons
                                                                                             (let ((app_1
                                                                                                    (make-construct_0
                                                                                                     k_0)))
                                                                                               (list
                                                                                                app_1
                                                                                                (make-construct_0
                                                                                                 v_0)))
                                                                                             fold-var_0)))
                                                                                       (values
                                                                                        fold-var_1))))
                                                                                (for-loop_0
                                                                                 fold-var_1
                                                                                 (hash-iterate-next
                                                                                  q_1
                                                                                  i_0))))
                                                                             (args
                                                                              (raise-binding-result-arity-error
                                                                               2
                                                                               args))))
                                                                           fold-var_0))))))
                                                                  (for-loop_0
                                                                   null
                                                                   (hash-iterate-first
                                                                    q_1))))))))))
                                                     (begin
                                                       (if mut?_0
                                                         (done-cycle_0
                                                          seen_0
                                                          q_1)
                                                         (void))
                                                       new-q_0))))
                                               (if (string? q_1)
                                                 (list
                                                  'datum-intern-literal
                                                  q_1)
                                                 (if (bytes? q_1)
                                                   (list
                                                    'datum-intern-literal
                                                    q_1)
                                                   (if (pair? q_1)
                                                     (if (list? q_1)
                                                       (let ((args_0
                                                              (map2
                                                               make-construct_0
                                                               q_1)))
                                                         (if (andmap2
                                                              quote?_0
                                                              args_0)
                                                           (list 'quote q_1)
                                                           (list*
                                                            'list
                                                            (map2
                                                             make-construct_0
                                                             q_1))))
                                                       (let ((a_0
                                                              (make-construct_0
                                                               (car q_1))))
                                                         (let ((d_0
                                                                (make-construct_0
                                                                 (cdr q_1))))
                                                           (let ((a_1 a_0))
                                                             (if (if (quote?_0
                                                                      a_1)
                                                                   (quote?_0
                                                                    d_0)
                                                                   #f)
                                                               (list
                                                                'quote
                                                                q_1)
                                                               (list
                                                                'cons
                                                                a_1
                                                                d_0))))))
                                                     (if (vector? q_1)
                                                       (let ((args_0
                                                              (map2
                                                               make-construct_0
                                                               (vector->list
                                                                q_1))))
                                                         (list
                                                          'vector->immutable-vector
                                                          (if (if (andmap2
                                                                   quote?_0
                                                                   args_0)
                                                                (not
                                                                 (impersonator?
                                                                  q_1))
                                                                #f)
                                                            (list 'quote q_1)
                                                            (list*
                                                             'vector
                                                             args_0))))
                                                       (if (box? q_1)
                                                         (let ((arg_0
                                                                (make-construct_0
                                                                 (unbox q_1))))
                                                           (list
                                                            'box-immutable
                                                            arg_0))
                                                         (let ((c2_0
                                                                (prefab-struct-key
                                                                 q_1)))
                                                           (if c2_0
                                                             (let ((mut?_0
                                                                    (not
                                                                     (prefab-key-all-fields-immutable?
                                                                      c2_0))))
                                                               (begin
                                                                 (if mut?_0
                                                                   (check-cycle_0
                                                                    q_0
                                                                    seen_0
                                                                    q_1)
                                                                   (void))
                                                                 (let ((new-q_0
                                                                        (list*
                                                                         'make-prefab-struct
                                                                         (list
                                                                          'quote
                                                                          c2_0)
                                                                         (map2
                                                                          make-construct_0
                                                                          (cdr
                                                                           (vector->list
                                                                            (struct->vector
                                                                             q_1)))))))
                                                                   (begin
                                                                     (if mut?_0
                                                                       (done-cycle_0
                                                                        seen_0
                                                                        q_1)
                                                                       (void))
                                                                     new-q_0))))
                                                             (if (extflonum?
                                                                  q_1)
                                                               (list*
                                                                'string->number
                                                                (format
                                                                 "~a"
                                                                 q_1)
                                                                '(10 'read))
                                                               (if (if for-cify?_0
                                                                     for-cify?_0
                                                                     (let ((or-part_0
                                                                            (null?
                                                                             q_1)))
                                                                       (if or-part_0
                                                                         or-part_0
                                                                         (let ((or-part_1
                                                                                (number?
                                                                                 q_1)))
                                                                           (if or-part_1
                                                                             or-part_1
                                                                             (let ((or-part_2
                                                                                    (char?
                                                                                     q_1)))
                                                                               (if or-part_2
                                                                                 or-part_2
                                                                                 (let ((or-part_3
                                                                                        (boolean?
                                                                                         q_1)))
                                                                                   (if or-part_3
                                                                                     or-part_3
                                                                                     (let ((or-part_4
                                                                                            (if (symbol?
                                                                                                 q_1)
                                                                                              (let ((or-part_4
                                                                                                     (symbol-interned?
                                                                                                      q_1)))
                                                                                                (if or-part_4
                                                                                                  or-part_4
                                                                                                  (symbol-unreadable?
                                                                                                   q_1)))
                                                                                              #f)))
                                                                                       (if or-part_4
                                                                                         or-part_4
                                                                                         (let ((or-part_5
                                                                                                (eof-object?
                                                                                                 q_1)))
                                                                                           (if or-part_5
                                                                                             or-part_5
                                                                                             (let ((or-part_6
                                                                                                    (void?
                                                                                                     q_1)))
                                                                                               (if or-part_6
                                                                                                 or-part_6
                                                                                                 (eq?
                                                                                                  q_1
                                                                                                  unsafe-undefined))))))))))))))))
                                                                 (list
                                                                  'quote
                                                                  q_1)
                                                                 (if (symbol?
                                                                      q_1)
                                                                   (list
                                                                    'force-unfasl
                                                                    (|#%app|
                                                                     add-lifted_0
                                                                     (to-fasl1.1
                                                                      (box q_1)
                                                                      '#()
                                                                      #f)))
                                                                   (let ((id_0
                                                                          (|#%app|
                                                                           add-lifted_0
                                                                           (to-fasl1.1
                                                                            (box
                                                                             q_1)
                                                                            '#()
                                                                            #f))))
                                                                     (list
                                                                      'force-unfasl
                                                                      id_0)))))))))))))))))))))
                            (if (if (quote?_0 rhs_0)
                                  (let ((or-part_0 (not for-cify?_0)))
                                    (if or-part_0
                                      or-part_0
                                      (not
                                       (lift-quoted?
                                        (cadr rhs_0)
                                        #t
                                        datum-intern?_0))))
                                  #f)
                              rhs_0
                              (let ((id_0 (|#%app| add-lifted_0 rhs_0)))
                                (begin
                                  (hash-set! lifted-constants_0 q_1 id_0)
                                  id_0))))))))))))
             (make-construct_0 q_0))))))))
(define make-let*
  (lambda (bindings_0 body_0)
    (if (null? bindings_0) body_0 (list 'let* bindings_0 body_0))))
(define equal-implies-eq?
  (lambda (e_0)
    (let ((hd_0
           (let ((p_0 (unwrap e_0))) (if (pair? p_0) (unwrap (car p_0)) #f))))
      (if (if (eq? 'quote hd_0)
            (let ((a_0 (cdr (unwrap e_0))))
              (let ((p_0 (unwrap a_0)))
                (if (pair? p_0)
                  (let ((a_1 (cdr p_0)))
                    (let ((app_0 (unwrap '()))) (eq? app_0 (unwrap a_1))))
                  #f)))
            #f)
        (let ((val_0
               (let ((d_0 (cdr (unwrap e_0))))
                 (let ((a_0 (car (unwrap d_0)))) a_0))))
          (let ((val_1 (unwrap val_0)))
            (let ((or-part_0 (symbol? val_1)))
              (if or-part_0
                or-part_0
                (let ((or-part_1 (keyword? val_1)))
                  (if or-part_1
                    or-part_1
                    (let ((or-part_2 (null? val_1)))
                      (if or-part_2
                        or-part_2
                        (boolean-or-fixnum? val_1)))))))))
        (let ((val_0 (unwrap e_0))) (boolean-or-fixnum? val_0))))))
(define boolean-or-fixnum?
  (lambda (val_0)
    (let ((or-part_0 (boolean? val_0)))
      (if or-part_0
        or-part_0
        (if (integer? val_0)
          (if (exact? val_0) (<= -16777216 val_0 16777215) #f)
          #f)))))
(define equal-implies-eqv?
  (lambda (e_0)
    (let ((hd_0
           (let ((p_0 (unwrap e_0))) (if (pair? p_0) (unwrap (car p_0)) #f))))
      (if (if (eq? 'quote hd_0)
            (let ((a_0 (cdr (unwrap e_0))))
              (let ((p_0 (unwrap a_0)))
                (if (pair? p_0)
                  (let ((a_1 (cdr p_0)))
                    (let ((app_0 (unwrap '()))) (eq? app_0 (unwrap a_1))))
                  #f)))
            #f)
        (let ((val_0
               (let ((d_0 (cdr (unwrap e_0))))
                 (let ((a_0 (car (unwrap d_0)))) a_0))))
          (let ((val_1 (unwrap val_0)))
            (let ((or-part_0 (number? val_1)))
              (if or-part_0 or-part_0 (char? val_1)))))
        (let ((val_0 (unwrap e_0))) (number? val_0))))))
(define unnest-let
  (lambda (e_0 prim-knowns_0 knowns_0 imports_0 mutated_0 simples_0)
    (if (let ((p_0 (unwrap e_0)))
          (if (pair? p_0)
            (let ((a_0 (cdr p_0)))
              (let ((p_1 (unwrap a_0)))
                (if (pair? p_1)
                  (if (let ((a_1 (car p_1))) (wrap-list? a_1)) #t #f)
                  #f)))
            #f))
      (call-with-values
       (lambda ()
         (let ((p_0 (unwrap e_0)))
           (let ((let-id_0 (let ((a_0 (car p_0))) a_0)))
             (call-with-values
              (lambda ()
                (let ((d_0 (cdr p_0)))
                  (let ((p_1 (unwrap d_0)))
                    (let ((binds_0 (let ((a_0 (car p_1))) (unwrap-list a_0))))
                      (let ((body_0 (let ((d_1 (cdr p_1))) d_1)))
                        (let ((binds_1 binds_0)) (values binds_1 body_0)))))))
              (case-lambda
               ((binds_0 body_0)
                (let ((let-id_1 let-id_0)) (values let-id_1 binds_0 body_0)))
               (args (raise-binding-result-arity-error 2 args)))))))
       (case-lambda
        ((let-id_0 binds_0 body_0)
         (if (let ((or-part_0 (eq? let-id_0 'let)))
               (if or-part_0 or-part_0 (eq? let-id_0 'letrec*)))
           (letrec*
            ((loop_0
              (|#%name|
               loop
               (lambda (binds_1 accum-binds_0 wraps_0 convert?_0)
                 (begin
                   (if (null? binds_1)
                     (if (not convert?_0)
                       e_0
                       (letrec*
                        ((loop_1
                          (|#%name|
                           loop
                           (lambda (wraps_1 e_1)
                             (begin
                               (if (null? wraps_1)
                                 e_1
                                 (let ((app_0 (cdr wraps_1)))
                                   (loop_1
                                    app_0
                                    (let ((app_1 (caar wraps_1)))
                                      (list app_1 (cdar wraps_1) e_1))))))))))
                        (loop_1
                         wraps_0
                         (list* let-id_0 (reverse$1 accum-binds_0) body_0))))
                     (let ((v_0 (car binds_1)))
                       (if (let ((p_0 (unwrap v_0)))
                             (if (pair? p_0)
                               (let ((a_0 (cdr p_0)))
                                 (let ((p_1 (unwrap a_0)))
                                   (if (pair? p_1)
                                     (if (let ((a_1 (car p_1)))
                                           (let ((p_2 (unwrap a_1)))
                                             (if (pair? p_2)
                                               (let ((a_2 (cdr p_2)))
                                                 (let ((p_3 (unwrap a_2)))
                                                   (if (pair? p_3)
                                                     (if (let ((a_3 (car p_3)))
                                                           (if (wrap-list? a_3)
                                                             (begin
                                                               (letrec*
                                                                ((for-loop_0
                                                                  (|#%name|
                                                                   for-loop
                                                                   (lambda (result_0
                                                                            lst_0)
                                                                     (begin
                                                                       (if (not
                                                                            (null?
                                                                             (unwrap
                                                                              lst_0)))
                                                                         (let ((v_1
                                                                                (if (pair?
                                                                                     (unwrap
                                                                                      lst_0))
                                                                                  (wrap-car
                                                                                   lst_0)
                                                                                  lst_0)))
                                                                           (let ((rest_0
                                                                                  (if (pair?
                                                                                       (unwrap
                                                                                        lst_0))
                                                                                    (wrap-cdr
                                                                                     lst_0)
                                                                                    null)))
                                                                             (let ((v_2
                                                                                    v_1))
                                                                               (let ((result_1
                                                                                      (let ((result_1
                                                                                             (let ((p_4
                                                                                                    (unwrap
                                                                                                     v_2)))
                                                                                               (if (pair?
                                                                                                    p_4)
                                                                                                 (let ((a_4
                                                                                                        (cdr
                                                                                                         p_4)))
                                                                                                   (let ((p_5
                                                                                                          (unwrap
                                                                                                           a_4)))
                                                                                                     (if (pair?
                                                                                                          p_5)
                                                                                                       (let ((a_5
                                                                                                              (cdr
                                                                                                               p_5)))
                                                                                                         (let ((app_0
                                                                                                                (unwrap
                                                                                                                 '())))
                                                                                                           (eq?
                                                                                                            app_0
                                                                                                            (unwrap
                                                                                                             a_5))))
                                                                                                       #f)))
                                                                                                 #f))))
                                                                                        (values
                                                                                         result_1))))
                                                                                 (if (if (not
                                                                                          (let ((x_0
                                                                                                 (list
                                                                                                  v_2)))
                                                                                            (not
                                                                                             result_1)))
                                                                                       #t
                                                                                       #f)
                                                                                   (for-loop_0
                                                                                    result_1
                                                                                    rest_0)
                                                                                   result_1)))))
                                                                         result_0))))))
                                                                (for-loop_0
                                                                 #t
                                                                 a_3)))
                                                             #f))
                                                       (let ((a_3 (cdr p_3)))
                                                         (let ((p_4
                                                                (unwrap a_3)))
                                                           (if (pair? p_4)
                                                             (let ((a_4
                                                                    (cdr p_4)))
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_4))))
                                                             #f)))
                                                       #f)
                                                     #f)))
                                               #f)))
                                       (let ((a_1 (cdr p_1)))
                                         (let ((app_0 (unwrap '())))
                                           (eq? app_0 (unwrap a_1))))
                                       #f)
                                     #f)))
                               #f))
                         (call-with-values
                          (lambda ()
                            (let ((p_0 (unwrap v_0)))
                              (let ((id_0 (let ((a_0 (car p_0))) a_0)))
                                (call-with-values
                                 (lambda ()
                                   (let ((d_0 (cdr p_0)))
                                     (let ((a_0 (car (unwrap d_0))))
                                       (let ((p_1 (unwrap a_0)))
                                         (let ((nest-let-id_0
                                                (let ((a_1 (car p_1))) a_1)))
                                           (call-with-values
                                            (lambda ()
                                              (let ((d_1 (cdr p_1)))
                                                (let ((p_2 (unwrap d_1)))
                                                  (call-with-values
                                                   (lambda ()
                                                     (let ((a_1 (car p_2)))
                                                       (call-with-values
                                                        (lambda ()
                                                          (begin
                                                            (letrec*
                                                             ((for-loop_0
                                                               (|#%name|
                                                                for-loop
                                                                (lambda (ids_0
                                                                         rhss_0
                                                                         lst_0)
                                                                  (begin
                                                                    (if (not
                                                                         (null?
                                                                          (unwrap
                                                                           lst_0)))
                                                                      (let ((v_1
                                                                             (if (pair?
                                                                                  (unwrap
                                                                                   lst_0))
                                                                               (wrap-car
                                                                                lst_0)
                                                                               lst_0)))
                                                                        (let ((rest_0
                                                                               (if (pair?
                                                                                    (unwrap
                                                                                     lst_0))
                                                                                 (wrap-cdr
                                                                                  lst_0)
                                                                                 null)))
                                                                          (let ((v_2
                                                                                 v_1))
                                                                            (call-with-values
                                                                             (lambda ()
                                                                               (call-with-values
                                                                                (lambda ()
                                                                                  (call-with-values
                                                                                   (lambda ()
                                                                                     (let ((p_3
                                                                                            (unwrap
                                                                                             v_2)))
                                                                                       (let ((ids_1
                                                                                              (let ((a_2
                                                                                                     (car
                                                                                                      p_3)))
                                                                                                a_2)))
                                                                                         (let ((rhss_1
                                                                                                (let ((d_2
                                                                                                       (cdr
                                                                                                        p_3)))
                                                                                                  (let ((a_2
                                                                                                         (car
                                                                                                          (unwrap
                                                                                                           d_2))))
                                                                                                    a_2))))
                                                                                           (let ((ids_2
                                                                                                  ids_1))
                                                                                             (values
                                                                                              ids_2
                                                                                              rhss_1))))))
                                                                                   (case-lambda
                                                                                    ((ids1_0
                                                                                      rhss2_0)
                                                                                     (values
                                                                                      (cons
                                                                                       ids1_0
                                                                                       ids_0)
                                                                                      (cons
                                                                                       rhss2_0
                                                                                       rhss_0)))
                                                                                    (args
                                                                                     (raise-binding-result-arity-error
                                                                                      2
                                                                                      args)))))
                                                                                (case-lambda
                                                                                 ((ids_1
                                                                                   rhss_1)
                                                                                  (values
                                                                                   ids_1
                                                                                   rhss_1))
                                                                                 (args
                                                                                  (raise-binding-result-arity-error
                                                                                   2
                                                                                   args)))))
                                                                             (case-lambda
                                                                              ((ids_1
                                                                                rhss_1)
                                                                               (for-loop_0
                                                                                ids_1
                                                                                rhss_1
                                                                                rest_0))
                                                                              (args
                                                                               (raise-binding-result-arity-error
                                                                                2
                                                                                args)))))))
                                                                      (values
                                                                       ids_0
                                                                       rhss_0)))))))
                                                             (for-loop_0
                                                              null
                                                              null
                                                              a_1))))
                                                        (case-lambda
                                                         ((ids_0 rhss_0)
                                                          (let ((app_0
                                                                 (reverse$1
                                                                  ids_0)))
                                                            (values
                                                             app_0
                                                             (reverse$1
                                                              rhss_0))))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args))))))
                                                   (case-lambda
                                                    ((ids_0 rhss_0)
                                                     (let ((body_1
                                                            (let ((d_2
                                                                   (cdr p_2)))
                                                              (let ((a_1
                                                                     (car
                                                                      (unwrap
                                                                       d_2))))
                                                                a_1))))
                                                       (let ((ids_1 ids_0)
                                                             (rhss_1 rhss_0))
                                                         (values
                                                          ids_1
                                                          rhss_1
                                                          body_1))))
                                                    (args
                                                     (raise-binding-result-arity-error
                                                      2
                                                      args)))))))
                                            (case-lambda
                                             ((ids_0 rhss_0 body_1)
                                              (let ((nest-let-id_1
                                                     nest-let-id_0))
                                                (values
                                                 nest-let-id_1
                                                 ids_0
                                                 rhss_0
                                                 body_1)))
                                             (args
                                              (raise-binding-result-arity-error
                                               3
                                               args)))))))))
                                 (case-lambda
                                  ((nest-let-id_0 ids_0 rhss_0 body_1)
                                   (let ((id_1 id_0))
                                     (values
                                      id_1
                                      nest-let-id_0
                                      ids_0
                                      rhss_0
                                      body_1)))
                                  (args
                                   (raise-binding-result-arity-error
                                    4
                                    args)))))))
                          (case-lambda
                           ((id_0 nest-let-id_0 ids_0 rhss_0 body_1)
                            (if (not
                                 (let ((or-part_0 (eq? let-id_0 'let)))
                                   (if or-part_0
                                     or-part_0
                                     (immediate-lambda? body_1))))
                              e_0
                              (if (if (let ((or-part_0
                                             (eq? 'let nest-let-id_0)))
                                        (if or-part_0
                                          or-part_0
                                          (if (eq? 'letrec* nest-let-id_0)
                                            (not (could-be-loop? ids_0 body_1))
                                            #f)))
                                    (begin
                                      (letrec*
                                       ((for-loop_0
                                         (|#%name|
                                          for-loop
                                          (lambda (result_0 lst_0)
                                            (begin
                                              (if (pair? lst_0)
                                                (let ((rhs_0
                                                       (unsafe-car lst_0)))
                                                  (let ((rest_0
                                                         (unsafe-cdr lst_0)))
                                                    (let ((result_1
                                                           (let ((result_1
                                                                  (if (let ((or-part_0
                                                                             (eq?
                                                                              'let
                                                                              let-id_0)))
                                                                        (if or-part_0
                                                                          or-part_0
                                                                          (immediate-lambda?
                                                                           rhs_0)))
                                                                    (simple?.1
                                                                     #t
                                                                     1
                                                                     rhs_0
                                                                     prim-knowns_0
                                                                     knowns_0
                                                                     imports_0
                                                                     mutated_0
                                                                     simples_0)
                                                                    #f)))
                                                             (values
                                                              result_1))))
                                                      (if (if (not
                                                               (let ((x_0
                                                                      (list
                                                                       rhs_0)))
                                                                 (not
                                                                  result_1)))
                                                            #t
                                                            #f)
                                                        (for-loop_0
                                                         result_1
                                                         rest_0)
                                                        result_1))))
                                                result_0))))))
                                       (for-loop_0 #t rhss_0)))
                                    #f)
                                (let ((v_1 (car binds_1)))
                                  (if (let ((p_0 (unwrap v_1)))
                                        (if (pair? p_0)
                                          (let ((a_0 (cdr p_0)))
                                            (let ((p_1 (unwrap a_0)))
                                              (if (pair? p_1)
                                                (if (let ((a_1 (car p_1)))
                                                      (let ((p_2 (unwrap a_1)))
                                                        (if (pair? p_2)
                                                          (let ((a_2
                                                                 (cdr p_2)))
                                                            (let ((p_3
                                                                   (unwrap
                                                                    a_2)))
                                                              (if (pair? p_3)
                                                                (let ((a_3
                                                                       (cdr
                                                                        p_3)))
                                                                  (let ((p_4
                                                                         (unwrap
                                                                          a_3)))
                                                                    (if (pair?
                                                                         p_4)
                                                                      (let ((a_4
                                                                             (cdr
                                                                              p_4)))
                                                                        (let ((app_0
                                                                               (unwrap
                                                                                '())))
                                                                          (eq?
                                                                           app_0
                                                                           (unwrap
                                                                            a_4))))
                                                                      #f)))
                                                                #f)))
                                                          #f)))
                                                  (let ((a_1 (cdr p_1)))
                                                    (let ((app_0 (unwrap '())))
                                                      (eq?
                                                       app_0
                                                       (unwrap a_1))))
                                                  #f)
                                                #f)))
                                          #f))
                                    (let ((inner-binds_0
                                           (let ((d_0 (cdr (unwrap v_1))))
                                             (let ((a_0 (car (unwrap d_0))))
                                               (let ((d_1 (cdr (unwrap a_0))))
                                                 (let ((a_1
                                                        (car (unwrap d_1))))
                                                   a_1))))))
                                      (if (eq? 'let let-id_0)
                                        (loop_0
                                         (cdr binds_1)
                                         (cons
                                          (list id_0 body_1)
                                          accum-binds_0)
                                         (cons
                                          (cons nest-let-id_0 inner-binds_0)
                                          wraps_0)
                                         #t)
                                        (let ((app_0 (cdr binds_1)))
                                          (loop_0
                                           app_0
                                           (cons
                                            (list id_0 body_1)
                                            (append
                                             inner-binds_0
                                             accum-binds_0))
                                           wraps_0
                                           #t))))
                                    (error 'match "failed ~e" v_1)))
                                (let ((app_0 (cdr binds_1)))
                                  (loop_0
                                   app_0
                                   (cons (car binds_1) accum-binds_0)
                                   wraps_0
                                   convert?_0)))))
                           (args (raise-binding-result-arity-error 5 args))))
                         (if (let ((p_0 (unwrap v_0)))
                               (if (pair? p_0)
                                 (let ((a_0 (cdr p_0)))
                                   (let ((p_1 (unwrap a_0)))
                                     (if (pair? p_1)
                                       (let ((a_1 (cdr p_1)))
                                         (let ((app_0 (unwrap '())))
                                           (eq? app_0 (unwrap a_1))))
                                       #f)))
                                 #f))
                           (let ((rhs_0
                                  (let ((d_0 (cdr (unwrap v_0))))
                                    (let ((a_0 (car (unwrap d_0)))) a_0))))
                             (if (let ((or-part_0 (eq? let-id_0 'let)))
                                   (if or-part_0
                                     or-part_0
                                     (immediate-lambda? rhs_0)))
                               (let ((app_0 (cdr binds_1)))
                                 (loop_0
                                  app_0
                                  (cons (car binds_1) accum-binds_0)
                                  wraps_0
                                  convert?_0))
                               e_0))
                           (error 'match "failed ~e" v_0))))))))))
            (loop_0 binds_0 '() '() #f))
           e_0))
        (args (raise-binding-result-arity-error 3 args))))
      e_0)))
(define immediate-lambda?
  (lambda (e_0)
    (let ((hd_0
           (let ((p_0 (unwrap e_0))) (if (pair? p_0) (unwrap (car p_0)) #f))))
      (if (if (eq? 'lambda hd_0) #t #f)
        #t
        (if (if (eq? 'case-lambda hd_0) #t #f) #t #f)))))
(define could-be-loop?
  (lambda (ids_0 body_0)
    (if (pair? ids_0)
      (if (null? (cdr ids_0))
        (if (pair? (unwrap body_0))
          (let ((app_0 (unwrap (car ids_0))))
            (eq? app_0 (unwrap (wrap-car body_0))))
          #f)
        #f)
      #f)))
(define infer-procedure-name
  (letrec ((add-property_0
            (|#%name|
             add-property
             (lambda (new-s_0 orig-s_0 str_0)
               (begin
                 (let ((app_0 (reannotate orig-s_0 new-s_0)))
                   (wrap-property-set
                    app_0
                    'inferred-name
                    (let ((prefix_0
                           (if (let ((or-part_0
                                      (char=? (string-ref str_0 0) '#\x21)))
                                 (if or-part_0
                                   or-part_0
                                   (char=? (string-ref str_0 0) '#\x5e)))
                             "[^"
                             "[")))
                      (string->symbol
                       (string-append-immutable prefix_0 str_0))))))))))
    (lambda (orig-s_0 new-s_0 explicit-unnamed?_0)
      (let ((inferred-name_0 (wrap-property orig-s_0 'inferred-name)))
        (if (symbol? inferred-name_0)
          (let ((s_0 (symbol->immutable-string inferred-name_0)))
            (if (if (fx> (string-length s_0) 0)
                  (let ((ch_0 (string-ref s_0 0)))
                    (let ((or-part_0 (char=? '#\x5b ch_0)))
                      (if or-part_0 or-part_0 (char=? '#\x5d ch_0))))
                  #f)
              (let ((app_0 (reannotate orig-s_0 new-s_0)))
                (wrap-property-set
                 app_0
                 'inferred-name
                 (string->symbol (string-append-immutable "]" s_0))))
              new-s_0))
          (call-with-values
           (lambda () (wrap-source orig-s_0))
           (case-lambda
            ((src_0 line_0 col_0 pos_0 span_0)
             (if (if (let ((or-part_0 (path? src_0)))
                       (if or-part_0 or-part_0 (string? src_0)))
                   (if line_0 col_0 #f)
                   #f)
               (add-property_0
                new-s_0
                orig-s_0
                (let ((app_0 (source->string src_0)))
                  (let ((app_1 (number->string line_0)))
                    (string-append
                     app_0
                     ":"
                     app_1
                     ":"
                     (number->string col_0)))))
               (if (if (let ((or-part_0 (path? src_0)))
                         (if or-part_0 or-part_0 (string? src_0)))
                     (if src_0 pos_0 #f)
                     #f)
                 (add-property_0
                  new-s_0
                  orig-s_0
                  (let ((app_0 (source->string src_0)))
                    (string-append app_0 "::" (number->string pos_0))))
                 (if (if explicit-unnamed?_0
                       explicit-unnamed?_0
                       (void? inferred-name_0))
                   (wrap-property-set
                    (reannotate orig-s_0 new-s_0)
                    'inferred-name
                    '|[|)
                   new-s_0))))
            (args (raise-binding-result-arity-error 5 args)))))))))
(define source->string
  (lambda (src_0)
    (let ((str_0 (if (string? src_0) src_0 (path->string src_0))))
      (let ((short-str_0
             (if (< (string-length str_0) 20)
               (string-copy str_0)
               (string-append
                "..."
                (substring str_0 (- (string-length str_0) 19))))))
        (begin
          (let ((end_0 (string-length short-str_0)))
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (pos_0)
                    (begin
                      (if (< pos_0 end_0)
                        (begin
                          (if (char=? '#\x5c (string-ref short-str_0 pos_0))
                            (string-set! short-str_0 pos_0 '#\x2f)
                            (void))
                          (for-loop_0 (+ pos_0 1)))
                        (values)))))))
               (for-loop_0 0))))
          (void)
          short-str_0)))))
(define inline-ptr-ref
  (lambda (args_0)
    (if (let ((p_0 (unwrap args_0)))
          (if (pair? p_0)
            (let ((a_0 (cdr p_0)))
              (let ((p_1 (unwrap a_0)))
                (if (pair? p_1)
                  (let ((a_1 (cdr p_1)))
                    (let ((p_2 (unwrap a_1)))
                      (if (pair? p_2)
                        (if (let ((a_2 (car p_2)))
                              (let ((p_3 (unwrap a_2)))
                                (if (pair? p_3)
                                  (if (let ((a_3 (car p_3)))
                                        (let ((app_0 (unwrap 'quote)))
                                          (eq? app_0 (unwrap a_3))))
                                    (let ((a_3 (cdr p_3)))
                                      (let ((p_4 (unwrap a_3)))
                                        (if (pair? p_4)
                                          (if (let ((a_4 (car p_4)))
                                                (let ((app_0 (unwrap 'abs)))
                                                  (eq? app_0 (unwrap a_4))))
                                            (let ((a_4 (cdr p_4)))
                                              (let ((app_0 (unwrap '())))
                                                (eq? app_0 (unwrap a_4))))
                                            #f)
                                          #f)))
                                    #f)
                                  #f)))
                          (let ((a_2 (cdr p_2)))
                            (let ((p_3 (unwrap a_2)))
                              (if (pair? p_3)
                                (let ((a_3 (cdr p_3)))
                                  (let ((app_0 (unwrap '())))
                                    (eq? app_0 (unwrap a_3))))
                                #f)))
                          #f)
                        #f)))
                  #f)))
            #f))
      (call-with-values
       (lambda ()
         (let ((p_0 (unwrap args_0)))
           (let ((ptr-e_0 (let ((a_0 (car p_0))) a_0)))
             (call-with-values
              (lambda ()
                (let ((d_0 (cdr p_0)))
                  (let ((p_1 (unwrap d_0)))
                    (let ((type-e_0 (let ((a_0 (car p_1))) a_0)))
                      (let ((offset-e_0
                             (let ((d_1 (cdr p_1)))
                               (let ((d_2 (cdr (unwrap d_1))))
                                 (let ((a_0 (car (unwrap d_2)))) a_0)))))
                        (let ((type-e_1 type-e_0))
                          (values type-e_1 offset-e_0)))))))
              (case-lambda
               ((type-e_0 offset-e_0)
                (let ((ptr-e_1 ptr-e_0)) (values ptr-e_1 type-e_0 offset-e_0)))
               (args (raise-binding-result-arity-error 2 args)))))))
       (case-lambda
        ((ptr-e_0 type-e_0 offset-e_0)
         (type->direct type-e_0 ptr-e_0 offset-e_0 #t make-ref #f))
        (args (raise-binding-result-arity-error 3 args))))
      (if (let ((p_0 (unwrap args_0)))
            (if (pair? p_0)
              (let ((a_0 (cdr p_0)))
                (let ((p_1 (unwrap a_0)))
                  (if (pair? p_1)
                    (let ((a_1 (cdr p_1)))
                      (let ((p_2 (unwrap a_1)))
                        (if (pair? p_2)
                          (let ((a_2 (cdr p_2)))
                            (let ((app_0 (unwrap '())))
                              (eq? app_0 (unwrap a_2))))
                          #f)))
                    #f)))
              #f))
        (call-with-values
         (lambda ()
           (let ((p_0 (unwrap args_0)))
             (let ((ptr-e_0 (let ((a_0 (car p_0))) a_0)))
               (call-with-values
                (lambda ()
                  (let ((d_0 (cdr p_0)))
                    (let ((p_1 (unwrap d_0)))
                      (let ((type-e_0 (let ((a_0 (car p_1))) a_0)))
                        (let ((offset-e_0
                               (let ((d_1 (cdr p_1)))
                                 (let ((a_0 (car (unwrap d_1)))) a_0))))
                          (let ((type-e_1 type-e_0))
                            (values type-e_1 offset-e_0)))))))
                (case-lambda
                 ((type-e_0 offset-e_0)
                  (let ((ptr-e_1 ptr-e_0))
                    (values ptr-e_1 type-e_0 offset-e_0)))
                 (args (raise-binding-result-arity-error 2 args)))))))
         (case-lambda
          ((ptr-e_0 type-e_0 offset-e_0)
           (type->direct type-e_0 ptr-e_0 offset-e_0 #f make-ref #f))
          (args (raise-binding-result-arity-error 3 args))))
        (if (let ((p_0 (unwrap args_0)))
              (if (pair? p_0)
                (let ((a_0 (cdr p_0)))
                  (let ((p_1 (unwrap a_0)))
                    (if (pair? p_1)
                      (let ((a_1 (cdr p_1)))
                        (let ((app_0 (unwrap '()))) (eq? app_0 (unwrap a_1))))
                      #f)))
                #f))
          (call-with-values
           (lambda ()
             (let ((p_0 (unwrap args_0)))
               (let ((ptr-e_0 (let ((a_0 (car p_0))) a_0)))
                 (let ((type-e_0
                        (let ((d_0 (cdr p_0)))
                          (let ((a_0 (car (unwrap d_0)))) a_0))))
                   (let ((ptr-e_1 ptr-e_0)) (values ptr-e_1 type-e_0))))))
           (case-lambda
            ((ptr-e_0 type-e_0)
             (type->direct type-e_0 ptr-e_0 0 #f make-ref #f))
            (args (raise-binding-result-arity-error 2 args))))
          #f)))))
(define make-ref
  (lambda (ref_0 set_0 ptr-e_0 offset-e_0 val-e_0 abs?_0)
    (list ref_0 ptr-e_0 offset-e_0 abs?_0)))
(define inline-ptr-set
  (lambda (args_0)
    (if (let ((p_0 (unwrap args_0)))
          (if (pair? p_0)
            (let ((a_0 (cdr p_0)))
              (let ((p_1 (unwrap a_0)))
                (if (pair? p_1)
                  (let ((a_1 (cdr p_1)))
                    (let ((p_2 (unwrap a_1)))
                      (if (pair? p_2)
                        (if (let ((a_2 (car p_2)))
                              (let ((p_3 (unwrap a_2)))
                                (if (pair? p_3)
                                  (if (let ((a_3 (car p_3)))
                                        (let ((app_0 (unwrap 'quote)))
                                          (eq? app_0 (unwrap a_3))))
                                    (let ((a_3 (cdr p_3)))
                                      (let ((p_4 (unwrap a_3)))
                                        (if (pair? p_4)
                                          (if (let ((a_4 (car p_4)))
                                                (let ((app_0 (unwrap 'abs)))
                                                  (eq? app_0 (unwrap a_4))))
                                            (let ((a_4 (cdr p_4)))
                                              (let ((app_0 (unwrap '())))
                                                (eq? app_0 (unwrap a_4))))
                                            #f)
                                          #f)))
                                    #f)
                                  #f)))
                          (let ((a_2 (cdr p_2)))
                            (let ((p_3 (unwrap a_2)))
                              (if (pair? p_3)
                                (let ((a_3 (cdr p_3)))
                                  (let ((p_4 (unwrap a_3)))
                                    (if (pair? p_4)
                                      (let ((a_4 (cdr p_4)))
                                        (let ((app_0 (unwrap '())))
                                          (eq? app_0 (unwrap a_4))))
                                      #f)))
                                #f)))
                          #f)
                        #f)))
                  #f)))
            #f))
      (call-with-values
       (lambda ()
         (let ((p_0 (unwrap args_0)))
           (let ((ptr-e_0 (let ((a_0 (car p_0))) a_0)))
             (call-with-values
              (lambda ()
                (let ((d_0 (cdr p_0)))
                  (let ((p_1 (unwrap d_0)))
                    (let ((type-e_0 (let ((a_0 (car p_1))) a_0)))
                      (call-with-values
                       (lambda ()
                         (let ((d_1 (cdr p_1)))
                           (let ((d_2 (cdr (unwrap d_1))))
                             (let ((p_2 (unwrap d_2)))
                               (let ((offset-e_0 (let ((a_0 (car p_2))) a_0)))
                                 (let ((val-e_0
                                        (let ((d_3 (cdr p_2)))
                                          (let ((a_0 (car (unwrap d_3))))
                                            a_0))))
                                   (let ((offset-e_1 offset-e_0))
                                     (values offset-e_1 val-e_0))))))))
                       (case-lambda
                        ((offset-e_0 val-e_0)
                         (let ((type-e_1 type-e_0))
                           (values type-e_1 offset-e_0 val-e_0)))
                        (args (raise-binding-result-arity-error 2 args))))))))
              (case-lambda
               ((type-e_0 offset-e_0 val-e_0)
                (let ((ptr-e_1 ptr-e_0))
                  (values ptr-e_1 type-e_0 offset-e_0 val-e_0)))
               (args (raise-binding-result-arity-error 3 args)))))))
       (case-lambda
        ((ptr-e_0 type-e_0 offset-e_0 val-e_0)
         (type->direct type-e_0 ptr-e_0 offset-e_0 #t make-set val-e_0))
        (args (raise-binding-result-arity-error 4 args))))
      (if (let ((p_0 (unwrap args_0)))
            (if (pair? p_0)
              (let ((a_0 (cdr p_0)))
                (let ((p_1 (unwrap a_0)))
                  (if (pair? p_1)
                    (let ((a_1 (cdr p_1)))
                      (let ((p_2 (unwrap a_1)))
                        (if (pair? p_2)
                          (let ((a_2 (cdr p_2)))
                            (let ((p_3 (unwrap a_2)))
                              (if (pair? p_3)
                                (let ((a_3 (cdr p_3)))
                                  (let ((app_0 (unwrap '())))
                                    (eq? app_0 (unwrap a_3))))
                                #f)))
                          #f)))
                    #f)))
              #f))
        (call-with-values
         (lambda ()
           (let ((p_0 (unwrap args_0)))
             (let ((ptr-e_0 (let ((a_0 (car p_0))) a_0)))
               (call-with-values
                (lambda ()
                  (let ((d_0 (cdr p_0)))
                    (let ((p_1 (unwrap d_0)))
                      (let ((type-e_0 (let ((a_0 (car p_1))) a_0)))
                        (call-with-values
                         (lambda ()
                           (let ((d_1 (cdr p_1)))
                             (let ((p_2 (unwrap d_1)))
                               (let ((offset-e_0 (let ((a_0 (car p_2))) a_0)))
                                 (let ((val-e_0
                                        (let ((d_2 (cdr p_2)))
                                          (let ((a_0 (car (unwrap d_2))))
                                            a_0))))
                                   (let ((offset-e_1 offset-e_0))
                                     (values offset-e_1 val-e_0)))))))
                         (case-lambda
                          ((offset-e_0 val-e_0)
                           (let ((type-e_1 type-e_0))
                             (values type-e_1 offset-e_0 val-e_0)))
                          (args
                           (raise-binding-result-arity-error 2 args))))))))
                (case-lambda
                 ((type-e_0 offset-e_0 val-e_0)
                  (let ((ptr-e_1 ptr-e_0))
                    (values ptr-e_1 type-e_0 offset-e_0 val-e_0)))
                 (args (raise-binding-result-arity-error 3 args)))))))
         (case-lambda
          ((ptr-e_0 type-e_0 offset-e_0 val-e_0)
           (type->direct type-e_0 ptr-e_0 offset-e_0 #f make-set val-e_0))
          (args (raise-binding-result-arity-error 4 args))))
        (if (let ((p_0 (unwrap args_0)))
              (if (pair? p_0)
                (let ((a_0 (cdr p_0)))
                  (let ((p_1 (unwrap a_0)))
                    (if (pair? p_1)
                      (let ((a_1 (cdr p_1)))
                        (let ((p_2 (unwrap a_1)))
                          (if (pair? p_2)
                            (let ((a_2 (cdr p_2)))
                              (let ((app_0 (unwrap '())))
                                (eq? app_0 (unwrap a_2))))
                            #f)))
                      #f)))
                #f))
          (call-with-values
           (lambda ()
             (let ((p_0 (unwrap args_0)))
               (let ((ptr-e_0 (let ((a_0 (car p_0))) a_0)))
                 (call-with-values
                  (lambda ()
                    (let ((d_0 (cdr p_0)))
                      (let ((p_1 (unwrap d_0)))
                        (let ((type-e_0 (let ((a_0 (car p_1))) a_0)))
                          (let ((val-e_0
                                 (let ((d_1 (cdr p_1)))
                                   (let ((a_0 (car (unwrap d_1)))) a_0))))
                            (let ((type-e_1 type-e_0))
                              (values type-e_1 val-e_0)))))))
                  (case-lambda
                   ((type-e_0 val-e_0)
                    (let ((ptr-e_1 ptr-e_0))
                      (values ptr-e_1 type-e_0 val-e_0)))
                   (args (raise-binding-result-arity-error 2 args)))))))
           (case-lambda
            ((ptr-e_0 type-e_0 val-e_0)
             (type->direct type-e_0 ptr-e_0 0 #f make-set val-e_0))
            (args (raise-binding-result-arity-error 3 args))))
          #f)))))
(define make-set
  (lambda (ref_0 set_0 ptr-e_0 offset-e_0 val-e_0 abs?_0)
    (list set_0 ptr-e_0 offset-e_0 val-e_0 abs?_0)))
(define type->direct
  (letrec ((do-make_0
            (|#%name|
             do-make
             (lambda (abs?_0 make_0 offset-e_0 ptr-e_0 val-e_0 ref_0 set_0)
               (begin
                 (|#%app|
                  make_0
                  ref_0
                  set_0
                  ptr-e_0
                  offset-e_0
                  val-e_0
                  abs?_0))))))
    (lambda (type-e_0 ptr-e_0 offset-e_0 abs?_0 make_0 val-e_0)
      (let ((tmp_0 (unwrap type-e_0)))
        (if (eq? tmp_0 '_int8)
          (do-make_0
           abs?_0
           make_0
           offset-e_0
           ptr-e_0
           val-e_0
           'ptr-ref/int8
           'ptr-set!/int8)
          (if (eq? tmp_0 '_uint8)
            (do-make_0
             abs?_0
             make_0
             offset-e_0
             ptr-e_0
             val-e_0
             'ptr-ref/uint8
             'ptr-set!/uint8)
            (if (eq? tmp_0 '_int16)
              (do-make_0
               abs?_0
               make_0
               offset-e_0
               ptr-e_0
               val-e_0
               'ptr-ref/int16
               'ptr-set!/int16)
              (if (eq? tmp_0 '_uint16)
                (do-make_0
                 abs?_0
                 make_0
                 offset-e_0
                 ptr-e_0
                 val-e_0
                 'ptr-ref/uint16
                 'ptr-set!/uint16)
                (if (eq? tmp_0 '_int32)
                  (do-make_0
                   abs?_0
                   make_0
                   offset-e_0
                   ptr-e_0
                   val-e_0
                   'ptr-ref/int32
                   'ptr-set!/int32)
                  (if (eq? tmp_0 '_uint32)
                    (do-make_0
                     abs?_0
                     make_0
                     offset-e_0
                     ptr-e_0
                     val-e_0
                     'ptr-ref/uint32
                     'ptr-set!/uint32)
                    (if (eq? tmp_0 '_int64)
                      (do-make_0
                       abs?_0
                       make_0
                       offset-e_0
                       ptr-e_0
                       val-e_0
                       'ptr-ref/int64
                       'ptr-set!/int64)
                      (if (eq? tmp_0 '_uint64)
                        (do-make_0
                         abs?_0
                         make_0
                         offset-e_0
                         ptr-e_0
                         val-e_0
                         'ptr-ref/uint64
                         'ptr-set!/uint64)
                        (if (eq? tmp_0 '_double)
                          (do-make_0
                           abs?_0
                           make_0
                           offset-e_0
                           ptr-e_0
                           val-e_0
                           'ptr-ref/double
                           'ptr-set!/double)
                          (if (eq? tmp_0 '_float)
                            (do-make_0
                             abs?_0
                             make_0
                             offset-e_0
                             ptr-e_0
                             val-e_0
                             'ptr-ref/float
                             'ptr-set!/float)
                            #f))))))))))))))
(define authentic-valued?
  (lambda (v_0 knowns_0 prim-knowns_0 imports_0 mutated_0)
    (letrec*
     ((authentic-valued?_0
       (|#%name|
        authentic-valued?
        (lambda (v_1)
          (begin
            (let ((hd_0
                   (let ((p_0 (unwrap v_1)))
                     (if (pair? p_0) (unwrap (car p_0)) #f))))
              (if (if (eq? 'quote hd_0)
                    (let ((a_0 (cdr (unwrap v_1))))
                      (let ((p_0 (unwrap a_0)))
                        (if (pair? p_0)
                          (let ((a_1 (cdr p_0)))
                            (let ((app_0 (unwrap '())))
                              (eq? app_0 (unwrap a_1))))
                          #f)))
                    #f)
                (let ((v_2
                       (let ((d_0 (cdr (unwrap v_1))))
                         (let ((a_0 (car (unwrap d_0)))) a_0))))
                  (not (impersonator? v_2)))
                (let ((u-v_0 (unwrap v_1)))
                  (if (symbol? u-v_0)
                    (if (not
                         (simple-mutated-state? (hash-ref mutated_0 u-v_0 #f)))
                      #f
                      (let ((c1_0
                             (let ((or-part_0
                                    (hash-ref prim-knowns_0 u-v_0 #f)))
                               (if or-part_0
                                 or-part_0
                                 (hash-ref-either knowns_0 imports_0 u-v_0)))))
                        (if c1_0
                          (let ((or-part_0 (known-authentic? c1_0)))
                            (if or-part_0
                              or-part_0
                              (let ((or-part_1 (known-procedure? c1_0)))
                                (if or-part_1
                                  or-part_1
                                  (let ((or-part_2
                                         (if (known-literal? c1_0)
                                           (not
                                            (impersonator?
                                             (known-literal-value c1_0)))
                                           #f)))
                                    (if or-part_2
                                      or-part_2
                                      (if (known-copy? c1_0)
                                        (authentic-valued?_0
                                         (known-copy-id c1_0))
                                        #f)))))))
                          #f)))
                    (not (pair? u-v_0)))))))))))
     (authentic-valued?_0 v_0))))
(define ensure-single-valued
  (lambda (v_0 knowns_0 prim-knowns_0 imports_0 mutated_0)
    (let ((hd_0
           (let ((p_0 (unwrap v_0))) (if (pair? p_0) (unwrap (car p_0)) #f))))
      (if (if (eq? 'quote hd_0)
            (let ((a_0 (cdr (unwrap v_0))))
              (let ((p_0 (unwrap a_0)))
                (if (pair? p_0)
                  (let ((a_1 (cdr p_0)))
                    (let ((app_0 (unwrap '()))) (eq? app_0 (unwrap a_1))))
                  #f)))
            #f)
        v_0
        (if (if (eq? 'lambda hd_0) #t #f)
          v_0
          (if (if (eq? 'case-lambda hd_0) #t #f)
            v_0
            (if (let ((p_0 (unwrap v_0))) (if (pair? p_0) #t #f))
              (let ((proc-or-form_0 (let ((a_0 (car (unwrap v_0)))) a_0)))
                (let ((u_0 (unwrap proc-or-form_0)))
                  (if (if (symbol? u_0)
                        (if (simple-mutated-state? (hash-ref mutated_0 u_0 #f))
                          (let ((k_0
                                 (let ((or-part_0
                                        (hash-ref prim-knowns_0 u_0 #f)))
                                   (if or-part_0
                                     or-part_0
                                     (hash-ref-either
                                      knowns_0
                                      imports_0
                                      u_0)))))
                            (known-procedure/pure? k_0))
                          #f)
                        #f)
                    v_0
                    (list '$value v_0))))
              v_0)))))))
(define schemify-linklet
  (letrec ((ex-ext-id_0
            (|#%name|
             ex-ext-id
             (lambda (id_0)
               (begin (unwrap (if (pair? id_0) (cadr id_0) id_0))))))
           (ex-int-id_0
            (|#%name|
             ex-int-id
             (lambda (id_0)
               (begin (unwrap (if (pair? id_0) (car id_0) id_0))))))
           (im-ext-id_0
            (|#%name|
             im-ext-id
             (lambda (id_0)
               (begin (unwrap (if (pair? id_0) (car id_0) id_0))))))
           (im-int-id_0
            (|#%name|
             im-int-id
             (lambda (id_0)
               (begin (unwrap (if (pair? id_0) (cadr id_0) id_0)))))))
    (lambda (lk_0
             serializable?_0
             datum-intern?_0
             for-interp?_0
             allow-set!-undefined?_0
             unsafe-mode?_0
             enforce-constant?_0
             allow-inline?_0
             no-prompt?_0
             prim-knowns_0
             primitives_0
             get-import-knowns_0
             import-keys_0)
      (with-continuation-mark*
       authentic
       parameterization-key
       (extend-parameterization
        (continuation-mark-set-first #f parameterization-key)
        gensym-counter
        (box 0))
       (let ((hd_0
              (let ((p_0 (unwrap lk_0)))
                (if (pair? p_0) (unwrap (car p_0)) #f))))
         (if (if (eq? 'linklet hd_0)
               (let ((a_0 (cdr (unwrap lk_0))))
                 (let ((p_0 (unwrap a_0)))
                   (if (pair? p_0)
                     (let ((a_1 (cdr p_0)))
                       (let ((p_1 (unwrap a_1))) (if (pair? p_1) #t #f)))
                     #f)))
               #f)
           (call-with-values
            (lambda ()
              (let ((d_0 (cdr (unwrap lk_0))))
                (let ((p_0 (unwrap d_0)))
                  (let ((im-idss_0 (let ((a_0 (car p_0))) a_0)))
                    (call-with-values
                     (lambda ()
                       (let ((d_1 (cdr p_0)))
                         (let ((p_1 (unwrap d_1)))
                           (let ((ex-ids_0 (let ((a_0 (car p_1))) a_0)))
                             (let ((bodys_0 (let ((d_2 (cdr p_1))) d_2)))
                               (let ((ex-ids_1 ex-ids_0))
                                 (values ex-ids_1 bodys_0)))))))
                     (case-lambda
                      ((ex-ids_0 bodys_0)
                       (let ((im-idss_1 im-idss_0))
                         (values im-idss_1 ex-ids_0 bodys_0)))
                      (args (raise-binding-result-arity-error 2 args))))))))
            (case-lambda
             ((im-idss_0 ex-ids_0 bodys_0)
              (let ((grps_0
                     (reverse$1
                      (begin
                        (letrec*
                         ((for-loop_0
                           (|#%name|
                            for-loop
                            (lambda (fold-var_0 lst_0 pos_0)
                              (begin
                                (if (if (pair? lst_0) #t #f)
                                  (let ((im-ids_0 (unsafe-car lst_0)))
                                    (let ((rest_0 (unsafe-cdr lst_0)))
                                      (let ((fold-var_1
                                             (let ((fold-var_1
                                                    (cons
                                                     (import-group2.1
                                                      pos_0
                                                      (if import-keys_0
                                                        (vector-ref
                                                         import-keys_0
                                                         pos_0)
                                                        #f)
                                                      get-import-knowns_0
                                                      #f
                                                      #f
                                                      '())
                                                     fold-var_0)))
                                               (values fold-var_1))))
                                        (for-loop_0
                                         fold-var_1
                                         rest_0
                                         (+ pos_0 1)))))
                                  fold-var_0))))))
                         (for-loop_0 null im-idss_0 0))))))
                (let ((imports_0
                       (let ((imports_0 (make-hasheq)))
                         (begin
                           (begin
                             (letrec*
                              ((for-loop_0
                                (|#%name|
                                 for-loop
                                 (lambda (lst_0 lst_1)
                                   (begin
                                     (if (if (pair? lst_0) (pair? lst_1) #f)
                                       (let ((im-ids_0 (unsafe-car lst_0)))
                                         (let ((rest_0 (unsafe-cdr lst_0)))
                                           (let ((grp_0 (unsafe-car lst_1)))
                                             (let ((rest_1 (unsafe-cdr lst_1)))
                                               (begin
                                                 (set-import-group-imports!
                                                  grp_0
                                                  (reverse$1
                                                   (begin
                                                     (letrec*
                                                      ((for-loop_1
                                                        (|#%name|
                                                         for-loop
                                                         (lambda (fold-var_0
                                                                  lst_2)
                                                           (begin
                                                             (if (pair? lst_2)
                                                               (let ((im-id_0
                                                                      (unsafe-car
                                                                       lst_2)))
                                                                 (let ((rest_2
                                                                        (unsafe-cdr
                                                                         lst_2)))
                                                                   (let ((fold-var_1
                                                                          (let ((fold-var_1
                                                                                 (cons
                                                                                  (let ((id_0
                                                                                         (im-int-id_0
                                                                                          im-id_0)))
                                                                                    (let ((ext-id_0
                                                                                           (im-ext-id_0
                                                                                            im-id_0)))
                                                                                      (let ((int-id_0
                                                                                             (deterministic-gensym
                                                                                              id_0)))
                                                                                        (let ((im_0
                                                                                               (import1.1
                                                                                                grp_0
                                                                                                int-id_0
                                                                                                id_0
                                                                                                ext-id_0)))
                                                                                          (begin
                                                                                            (hash-set!
                                                                                             imports_0
                                                                                             id_0
                                                                                             im_0)
                                                                                            (hash-set!
                                                                                             imports_0
                                                                                             int-id_0
                                                                                             im_0)
                                                                                            im_0)))))
                                                                                  fold-var_0)))
                                                                            (values
                                                                             fold-var_1))))
                                                                     (for-loop_1
                                                                      fold-var_1
                                                                      rest_2))))
                                                               fold-var_0))))))
                                                      (for-loop_1
                                                       null
                                                       im-ids_0)))))
                                                 (for-loop_0
                                                  rest_0
                                                  rest_1))))))
                                       (values)))))))
                              (for-loop_0 im-idss_0 grps_0)))
                           (void)
                           imports_0))))
                  (let ((new-grps_0 '()))
                    (let ((add-import!_0
                           (make-add-import!
                            imports_0
                            grps_0
                            get-import-knowns_0
                            (lambda (new-grp_0)
                              (set! new-grps_0 (cons new-grp_0 new-grps_0))))))
                      (let ((exports_0
                             (begin
                               (letrec*
                                ((for-loop_0
                                  (|#%name|
                                   for-loop
                                   (lambda (exports_0 lst_0)
                                     (begin
                                       (if (pair? lst_0)
                                         (let ((ex-id_0 (unsafe-car lst_0)))
                                           (let ((rest_0 (unsafe-cdr lst_0)))
                                             (let ((exports_1
                                                    (let ((exports_1
                                                           (let ((id_0
                                                                  (ex-int-id_0
                                                                   ex-id_0)))
                                                             (hash-set
                                                              exports_0
                                                              id_0
                                                              (let ((app_0
                                                                     (deterministic-gensym
                                                                      id_0)))
                                                                (export1.1
                                                                 app_0
                                                                 (ex-ext-id_0
                                                                  ex-id_0)))))))
                                                      (values exports_1))))
                                               (for-loop_0 exports_1 rest_0))))
                                         exports_0))))))
                                (for-loop_0 (hasheq) ex-ids_0)))))
                        (call-with-values
                         (lambda ()
                           (if serializable?_0
                             (convert-for-serialize bodys_0 #f datum-intern?_0)
                             (values bodys_0 null)))
                         (case-lambda
                          ((bodys/constants-lifted_0 lifted-constants_0)
                           (let ((src-syms_0
                                  (get-definition-source-syms bodys_0)))
                             (call-with-values
                              (lambda ()
                                (schemify-body*
                                 bodys/constants-lifted_0
                                 prim-knowns_0
                                 primitives_0
                                 imports_0
                                 exports_0
                                 for-interp?_0
                                 allow-set!-undefined?_0
                                 add-import!_0
                                 #f
                                 unsafe-mode?_0
                                 enforce-constant?_0
                                 allow-inline?_0
                                 no-prompt?_0
                                 #t))
                              (case-lambda
                               ((new-body_0 defn-info_0 mutated_0)
                                (let ((all-grps_0
                                       (append grps_0 (reverse$1 new-grps_0))))
                                  (let ((app_0
                                         (make-let*
                                          lifted-constants_0
                                          (list*
                                           'lambda
                                           (list*
                                            'instance-variable-reference
                                            (let ((app_0
                                                   (reverse$1
                                                    (begin
                                                      (letrec*
                                                       ((for-loop_0
                                                         (|#%name|
                                                          for-loop
                                                          (lambda (fold-var_0
                                                                   lst_0)
                                                            (begin
                                                              (if (pair? lst_0)
                                                                (let ((grp_0
                                                                       (unsafe-car
                                                                        lst_0)))
                                                                  (let ((rest_0
                                                                         (unsafe-cdr
                                                                          lst_0)))
                                                                    (let ((fold-var_1
                                                                           (let ((lst_1
                                                                                  (import-group-imports
                                                                                   grp_0)))
                                                                             (begin
                                                                               (letrec*
                                                                                ((for-loop_1
                                                                                  (|#%name|
                                                                                   for-loop
                                                                                   (lambda (fold-var_1
                                                                                            lst_2)
                                                                                     (begin
                                                                                       (if (pair?
                                                                                            lst_2)
                                                                                         (let ((im_0
                                                                                                (unsafe-car
                                                                                                 lst_2)))
                                                                                           (let ((rest_1
                                                                                                  (unsafe-cdr
                                                                                                   lst_2)))
                                                                                             (let ((fold-var_2
                                                                                                    (let ((fold-var_2
                                                                                                           (cons
                                                                                                            (import-id
                                                                                                             im_0)
                                                                                                            fold-var_1)))
                                                                                                      (values
                                                                                                       fold-var_2))))
                                                                                               (for-loop_1
                                                                                                fold-var_2
                                                                                                rest_1))))
                                                                                         fold-var_1))))))
                                                                                (for-loop_1
                                                                                 fold-var_0
                                                                                 lst_1))))))
                                                                      (for-loop_0
                                                                       fold-var_1
                                                                       rest_0))))
                                                                fold-var_0))))))
                                                       (for-loop_0
                                                        null
                                                        all-grps_0))))))
                                              (qq-append
                                               app_0
                                               (reverse$1
                                                (begin
                                                  (letrec*
                                                   ((for-loop_0
                                                     (|#%name|
                                                      for-loop
                                                      (lambda (fold-var_0
                                                               lst_0)
                                                        (begin
                                                          (if (pair? lst_0)
                                                            (let ((ex-id_0
                                                                   (unsafe-car
                                                                    lst_0)))
                                                              (let ((rest_0
                                                                     (unsafe-cdr
                                                                      lst_0)))
                                                                (let ((fold-var_1
                                                                       (let ((fold-var_1
                                                                              (cons
                                                                               (export-id
                                                                                (hash-ref
                                                                                 exports_0
                                                                                 (ex-int-id_0
                                                                                  ex-id_0)))
                                                                               fold-var_0)))
                                                                         (values
                                                                          fold-var_1))))
                                                                  (for-loop_0
                                                                   fold-var_1
                                                                   rest_0))))
                                                            fold-var_0))))))
                                                   (for-loop_0
                                                    null
                                                    ex-ids_0)))))))
                                           new-body_0))))
                                    (let ((app_1
                                           (reverse$1
                                            (begin
                                              (letrec*
                                               ((for-loop_0
                                                 (|#%name|
                                                  for-loop
                                                  (lambda (fold-var_0 lst_0)
                                                    (begin
                                                      (if (pair? lst_0)
                                                        (let ((grp_0
                                                               (unsafe-car
                                                                lst_0)))
                                                          (let ((rest_0
                                                                 (unsafe-cdr
                                                                  lst_0)))
                                                            (let ((fold-var_1
                                                                   (let ((fold-var_1
                                                                          (cons
                                                                           (reverse$1
                                                                            (let ((lst_1
                                                                                   (import-group-imports
                                                                                    grp_0)))
                                                                              (begin
                                                                                (letrec*
                                                                                 ((for-loop_1
                                                                                   (|#%name|
                                                                                    for-loop
                                                                                    (lambda (fold-var_1
                                                                                             lst_2)
                                                                                      (begin
                                                                                        (if (pair?
                                                                                             lst_2)
                                                                                          (let ((im_0
                                                                                                 (unsafe-car
                                                                                                  lst_2)))
                                                                                            (let ((rest_1
                                                                                                   (unsafe-cdr
                                                                                                    lst_2)))
                                                                                              (let ((fold-var_2
                                                                                                     (let ((fold-var_2
                                                                                                            (cons
                                                                                                             (import-ext-id
                                                                                                              im_0)
                                                                                                             fold-var_1)))
                                                                                                       (values
                                                                                                        fold-var_2))))
                                                                                                (for-loop_1
                                                                                                 fold-var_2
                                                                                                 rest_1))))
                                                                                          fold-var_1))))))
                                                                                 (for-loop_1
                                                                                  null
                                                                                  lst_1)))))
                                                                           fold-var_0)))
                                                                     (values
                                                                      fold-var_1))))
                                                              (for-loop_0
                                                               fold-var_1
                                                               rest_0))))
                                                        fold-var_0))))))
                                               (for-loop_0
                                                null
                                                all-grps_0))))))
                                      (let ((app_2
                                             (reverse$1
                                              (begin
                                                (letrec*
                                                 ((for-loop_0
                                                   (|#%name|
                                                    for-loop
                                                    (lambda (fold-var_0 lst_0)
                                                      (begin
                                                        (if (pair? lst_0)
                                                          (let ((ex-id_0
                                                                 (unsafe-car
                                                                  lst_0)))
                                                            (let ((rest_0
                                                                   (unsafe-cdr
                                                                    lst_0)))
                                                              (let ((fold-var_1
                                                                     (let ((fold-var_1
                                                                            (cons
                                                                             (let ((sym_0
                                                                                    (ex-ext-id_0
                                                                                     ex-id_0)))
                                                                               (let ((int-sym_0
                                                                                      (ex-int-id_0
                                                                                       ex-id_0)))
                                                                                 (let ((src-sym_0
                                                                                        (hash-ref
                                                                                         src-syms_0
                                                                                         int-sym_0
                                                                                         sym_0)))
                                                                                   (if (eq?
                                                                                        sym_0
                                                                                        src-sym_0)
                                                                                     sym_0
                                                                                     (cons
                                                                                      sym_0
                                                                                      src-sym_0)))))
                                                                             fold-var_0)))
                                                                       (values
                                                                        fold-var_1))))
                                                                (for-loop_0
                                                                 fold-var_1
                                                                 rest_0))))
                                                          fold-var_0))))))
                                                 (for-loop_0
                                                  null
                                                  ex-ids_0))))))
                                        (let ((app_3
                                               (if (null? new-grps_0)
                                                 import-keys_0
                                                 (let ((len_0
                                                        (length all-grps_0)))
                                                   (begin
                                                     (if (exact-nonnegative-integer?
                                                          len_0)
                                                       (void)
                                                       (raise-argument-error
                                                        'for/vector
                                                        "exact-nonnegative-integer?"
                                                        len_0))
                                                     (let ((v_0
                                                            (make-vector
                                                             len_0
                                                             0)))
                                                       (begin
                                                         (if (zero? len_0)
                                                           (void)
                                                           (begin
                                                             (letrec*
                                                              ((for-loop_0
                                                                (|#%name|
                                                                 for-loop
                                                                 (lambda (i_0
                                                                          lst_0)
                                                                   (begin
                                                                     (if (pair?
                                                                          lst_0)
                                                                       (let ((grp_0
                                                                              (unsafe-car
                                                                               lst_0)))
                                                                         (let ((rest_0
                                                                                (unsafe-cdr
                                                                                 lst_0)))
                                                                           (let ((i_1
                                                                                  (let ((i_1
                                                                                         (begin
                                                                                           (unsafe-vector*-set!
                                                                                            v_0
                                                                                            i_0
                                                                                            (import-group-key
                                                                                             grp_0))
                                                                                           (unsafe-fx+
                                                                                            1
                                                                                            i_0))))
                                                                                    (values
                                                                                     i_1))))
                                                                             (if (if (not
                                                                                      (let ((x_0
                                                                                             (list
                                                                                              grp_0)))
                                                                                        (unsafe-fx=
                                                                                         i_1
                                                                                         len_0)))
                                                                                   #t
                                                                                   #f)
                                                                               (for-loop_0
                                                                                i_1
                                                                                rest_0)
                                                                               i_1))))
                                                                       i_0))))))
                                                              (for-loop_0
                                                               0
                                                               all-grps_0))))
                                                         v_0)))))))
                                          (let ((app_4
                                                 (reverse$1
                                                  (begin
                                                    (letrec*
                                                     ((for-loop_0
                                                       (|#%name|
                                                        for-loop
                                                        (lambda (fold-var_0
                                                                 lst_0)
                                                          (begin
                                                            (if (pair? lst_0)
                                                              (let ((grp_0
                                                                     (unsafe-car
                                                                      lst_0)))
                                                                (let ((rest_0
                                                                       (unsafe-cdr
                                                                        lst_0)))
                                                                  (let ((fold-var_1
                                                                         (let ((fold-var_1
                                                                                (cons
                                                                                 (let ((im-ready?_0
                                                                                        (import-group-lookup-ready?
                                                                                         grp_0)))
                                                                                   (reverse$1
                                                                                    (let ((lst_1
                                                                                           (import-group-imports
                                                                                            grp_0)))
                                                                                      (begin
                                                                                        (letrec*
                                                                                         ((for-loop_1
                                                                                           (|#%name|
                                                                                            for-loop
                                                                                            (lambda (fold-var_1
                                                                                                     lst_2)
                                                                                              (begin
                                                                                                (if (pair?
                                                                                                     lst_2)
                                                                                                  (let ((im_0
                                                                                                         (unsafe-car
                                                                                                          lst_2)))
                                                                                                    (let ((rest_1
                                                                                                           (unsafe-cdr
                                                                                                            lst_2)))
                                                                                                      (let ((fold-var_2
                                                                                                             (let ((fold-var_2
                                                                                                                    (cons
                                                                                                                     (if im-ready?_0
                                                                                                                       (let ((k_0
                                                                                                                              (import-group-lookup
                                                                                                                               grp_0
                                                                                                                               (import-ext-id
                                                                                                                                im_0))))
                                                                                                                         (if (known-constant?
                                                                                                                              k_0)
                                                                                                                           (if (known-procedure?
                                                                                                                                k_0)
                                                                                                                             'proc
                                                                                                                             #t)
                                                                                                                           #f))
                                                                                                                       #f)
                                                                                                                     fold-var_1)))
                                                                                                               (values
                                                                                                                fold-var_2))))
                                                                                                        (for-loop_1
                                                                                                         fold-var_2
                                                                                                         rest_1))))
                                                                                                  fold-var_1))))))
                                                                                         (for-loop_1
                                                                                          null
                                                                                          lst_1))))))
                                                                                 fold-var_0)))
                                                                           (values
                                                                            fold-var_1))))
                                                                    (for-loop_0
                                                                     fold-var_1
                                                                     rest_0))))
                                                              fold-var_0))))))
                                                     (for-loop_0
                                                      null
                                                      all-grps_0))))))
                                            (values
                                             app_0
                                             app_1
                                             app_2
                                             app_3
                                             app_4
                                             (begin
                                               (letrec*
                                                ((for-loop_0
                                                  (|#%name|
                                                   for-loop
                                                   (lambda (knowns_0 lst_0)
                                                     (begin
                                                       (if (pair? lst_0)
                                                         (let ((ex-id_0
                                                                (unsafe-car
                                                                 lst_0)))
                                                           (let ((rest_0
                                                                  (unsafe-cdr
                                                                   lst_0)))
                                                             (let ((knowns_1
                                                                    (let ((knowns_1
                                                                           (let ((id_0
                                                                                  (ex-int-id_0
                                                                                   ex-id_0)))
                                                                             (let ((v_0
                                                                                    (known-inline->export-known
                                                                                     (hash-ref
                                                                                      defn-info_0
                                                                                      id_0
                                                                                      #f)
                                                                                     prim-knowns_0
                                                                                     imports_0
                                                                                     exports_0
                                                                                     serializable?_0)))
                                                                               (if (not
                                                                                    (set!ed-mutated-state?
                                                                                     (hash-ref
                                                                                      mutated_0
                                                                                      id_0
                                                                                      #f)))
                                                                                 (let ((ext-id_0
                                                                                        (ex-ext-id_0
                                                                                         ex-id_0)))
                                                                                   (hash-set
                                                                                    knowns_0
                                                                                    ext-id_0
                                                                                    (if v_0
                                                                                      v_0
                                                                                      a-known-constant)))
                                                                                 knowns_0)))))
                                                                      (values
                                                                       knowns_1))))
                                                               (for-loop_0
                                                                knowns_1
                                                                rest_0))))
                                                         knowns_0))))))
                                                (for-loop_0
                                                 (hasheq)
                                                 ex-ids_0)))))))))))
                               (args
                                (raise-binding-result-arity-error 3 args))))))
                          (args
                           (raise-binding-result-arity-error 2 args))))))))))
             (args (raise-binding-result-arity-error 3 args))))
           (error 'match "failed ~e" lk_0)))))))
(define schemify-body
  (letrec ((procz1 (lambda (im_0 ext-id_0 index_0) #f)))
    (lambda (l_0
             prim-knowns_0
             primitives_0
             imports_0
             exports_0
             for-cify?_0
             unsafe-mode?_0
             no-prompt?_0
             explicit-unnamed?_0)
      (with-continuation-mark*
       authentic
       parameterization-key
       (extend-parameterization
        (continuation-mark-set-first #f parameterization-key)
        gensym-counter
        (box 0))
       (call-with-values
        (lambda ()
          (schemify-body*
           l_0
           prim-knowns_0
           primitives_0
           imports_0
           exports_0
           #f
           #f
           procz1
           for-cify?_0
           unsafe-mode?_0
           #t
           #t
           no-prompt?_0
           explicit-unnamed?_0))
        (case-lambda
         ((new-body_0 defn-info_0 mutated_0) new-body_0)
         (args (raise-binding-result-arity-error 3 args))))))))
(define schemify-body*
  (letrec ((add-extra-variables_0
            (|#%name|
             add-extra-variables
             (lambda (extra-variables_0 l_0)
               (begin
                 (append
                  (reverse$1
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (fold-var_0 i_0)
                           (begin
                             (if i_0
                               (call-with-values
                                (lambda ()
                                  (hash-iterate-key+value
                                   extra-variables_0
                                   i_0))
                                (case-lambda
                                 ((int-id_0 ex_0)
                                  (let ((fold-var_1
                                         (let ((fold-var_1
                                                (cons
                                                 (list*
                                                  'define
                                                  (export-id ex_0)
                                                  '((make-internal-variable
                                                     'int-id)))
                                                 fold-var_0)))
                                           (values fold-var_1))))
                                    (for-loop_0
                                     fold-var_1
                                     (hash-iterate-next
                                      extra-variables_0
                                      i_0))))
                                 (args
                                  (raise-binding-result-arity-error 2 args))))
                               fold-var_0))))))
                      (for-loop_0
                       null
                       (hash-iterate-first extra-variables_0)))))
                  l_0)))))
           (finish-definition_0
            (|#%name|
             finish-definition
             (lambda (accum-exprs_0
                      accum-ids_0
                      add-import!_0
                      allow-inline?_0
                      allow-set!-undefined?_0
                      explicit-unnamed?_0
                      exports_0
                      extra-variables_0
                      final-knowns_0
                      for-cify?_0
                      for-interp?_0
                      imports_0
                      knowns_0
                      l_0
                      mut-l_0
                      mutated_0
                      no-prompt?_0
                      prim-knowns_0
                      primitives_0
                      schemified_0
                      simples_0
                      unsafe-mode?_0
                      knowns15_0
                      next-k17_0
                      schemified16_0
                      ids23_0
                      accum-exprs21_0
                      accum-ids22_0)
               (begin
                 (let ((accum-exprs_1
                        (if (eq? accum-exprs21_0 unsafe-undefined)
                          accum-exprs_0
                          accum-exprs21_0)))
                   (let ((accum-ids_1
                          (if (eq? accum-ids22_0 unsafe-undefined)
                            accum-ids_0
                            accum-ids22_0)))
                     (let ((knowns_1
                            (if (eq? knowns15_0 unsafe-undefined)
                              knowns_0
                              knowns15_0)))
                       (let ((schemified_1
                              (if (eq? schemified16_0 unsafe-undefined)
                                schemified_0
                                schemified16_0)))
                         (let ((next-knowns_0
                                (if (if (pair? ids23_0)
                                      (if (null? (cdr ids23_0))
                                        (can-improve-infer-known?
                                         (hash-ref
                                          knowns_1
                                          (unwrap (car ids23_0))
                                          #f))
                                        #f)
                                      #f)
                                  (let ((id_0 (car ids23_0)))
                                    (let ((k_0
                                           (let ((hd_0
                                                  (let ((p_0
                                                         (unwrap
                                                          schemified_1)))
                                                    (if (pair? p_0)
                                                      (unwrap (car p_0))
                                                      #f))))
                                             (if (if (eq? 'define hd_0)
                                                   (let ((a_0
                                                          (cdr
                                                           (unwrap
                                                            schemified_1))))
                                                     (let ((p_0 (unwrap a_0)))
                                                       (if (pair? p_0)
                                                         (let ((a_1 (cdr p_0)))
                                                           (let ((p_1
                                                                  (unwrap
                                                                   a_1)))
                                                             (if (pair? p_1)
                                                               (let ((a_2
                                                                      (cdr
                                                                       p_1)))
                                                                 (let ((app_0
                                                                        (unwrap
                                                                         '())))
                                                                   (eq?
                                                                    app_0
                                                                    (unwrap
                                                                     a_2))))
                                                               #f)))
                                                         #f)))
                                                   #f)
                                               (call-with-values
                                                (lambda ()
                                                  (let ((d_0
                                                         (cdr
                                                          (unwrap
                                                           schemified_1))))
                                                    (let ((p_0 (unwrap d_0)))
                                                      (let ((id_1
                                                             (let ((a_0
                                                                    (car p_0)))
                                                               a_0)))
                                                        (let ((rhs_0
                                                               (let ((d_1
                                                                      (cdr
                                                                       p_0)))
                                                                 (let ((a_0
                                                                        (car
                                                                         (unwrap
                                                                          d_1))))
                                                                   a_0))))
                                                          (let ((id_2 id_1))
                                                            (values
                                                             id_2
                                                             rhs_0)))))))
                                                (case-lambda
                                                 ((id_1 rhs_0)
                                                  (infer-known.1
                                                   #f
                                                   #t
                                                   hash2610
                                                   rhs_0
                                                   #f
                                                   id_1
                                                   knowns_1
                                                   prim-knowns_0
                                                   imports_0
                                                   mutated_0
                                                   simples_0
                                                   unsafe-mode?_0))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   2
                                                   args))))
                                               (error
                                                'match
                                                "failed ~e"
                                                schemified_1)))))
                                      (if k_0
                                        (hash-set knowns_1 (unwrap id_0) k_0)
                                        knowns_1)))
                                  knowns_1)))
                           (let ((app_0
                                  (make-expr-defns_0
                                   for-cify?_0
                                   for-interp?_0
                                   accum-exprs_1)))
                             (append
                              app_0
                              (cons
                               schemified_1
                               (letrec*
                                ((id-loop_0
                                  (|#%name|
                                   id-loop
                                   (lambda (ids_0 accum-exprs_2 accum-ids_2)
                                     (begin
                                       (if (null? ids_0)
                                         (if next-k17_0
                                           (|#%app|
                                            next-k17_0
                                            accum-exprs_2
                                            accum-ids_2
                                            next-knowns_0)
                                           (loop_0
                                            add-import!_0
                                            allow-inline?_0
                                            allow-set!-undefined?_0
                                            explicit-unnamed?_0
                                            exports_0
                                            extra-variables_0
                                            final-knowns_0
                                            for-cify?_0
                                            for-interp?_0
                                            imports_0
                                            mutated_0
                                            no-prompt?_0
                                            prim-knowns_0
                                            primitives_0
                                            simples_0
                                            unsafe-mode?_0
                                            (cdr l_0)
                                            mut-l_0
                                            accum-exprs_2
                                            accum-ids_2
                                            next-knowns_0))
                                         (if (let ((or-part_0
                                                    (if for-interp?_0
                                                      for-interp?_0
                                                      for-cify?_0)))
                                               (if or-part_0
                                                 or-part_0
                                                 (via-variable-mutated-state?
                                                  (hash-ref
                                                   mutated_0
                                                   (unwrap (car ids_0))
                                                   #f))))
                                           (let ((id_0 (unwrap (car ids_0))))
                                             (if (hash-ref exports_0 id_0 #f)
                                               (let ((app_1 (cdr ids_0)))
                                                 (id-loop_0
                                                  app_1
                                                  (cons
                                                   (make-set-variable
                                                    id_0
                                                    exports_0
                                                    knowns_1
                                                    mutated_0)
                                                   accum-exprs_2)
                                                  accum-ids_2))
                                               (id-loop_0
                                                (cdr ids_0)
                                                accum-exprs_2
                                                accum-ids_2)))
                                           (let ((app_1 (cdr ids_0)))
                                             (id-loop_0
                                              app_1
                                              accum-exprs_2
                                              (cons
                                               (car ids_0)
                                               accum-ids_2))))))))))
                                (id-loop_0
                                 ids23_0
                                 null
                                 accum-ids_1))))))))))))))
           (finish-wrapped-definition_0
            (|#%name|
             finish-wrapped-definition
             (lambda (accum-exprs_0
                      accum-ids_0
                      add-import!_0
                      allow-inline?_0
                      allow-set!-undefined?_0
                      explicit-unnamed?_0
                      exports_0
                      extra-variables_0
                      final-knowns_0
                      for-cify?_0
                      for-interp?_0
                      imports_0
                      knowns_0
                      l_0
                      mut-l_0
                      mutated_0
                      no-prompt?_0
                      prim-knowns_0
                      primitives_0
                      schemified_0
                      simples_0
                      unsafe-mode?_0
                      ids_0
                      rhs_0)
               (begin
                 (let ((app_0
                        (make-expr-defns_0
                         for-cify?_0
                         for-interp?_0
                         accum-exprs_0)))
                   (let ((app_1
                          (make-expr-defns_0
                           for-cify?_0
                           for-interp?_0
                           (make-set-variables_0
                            accum-ids_0
                            exports_0
                            for-cify?_0
                            for-interp?_0
                            knowns_0
                            mutated_0))))
                     (append
                      app_0
                      app_1
                      (if no-prompt?_0
                        (cons
                         schemified_0
                         (let ((app_2 (cdr l_0)))
                           (loop_0
                            add-import!_0
                            allow-inline?_0
                            allow-set!-undefined?_0
                            explicit-unnamed?_0
                            exports_0
                            extra-variables_0
                            final-knowns_0
                            for-cify?_0
                            for-interp?_0
                            imports_0
                            mutated_0
                            no-prompt?_0
                            prim-knowns_0
                            primitives_0
                            simples_0
                            unsafe-mode?_0
                            app_2
                            mut-l_0
                            null
                            (reverse$1 ids_0)
                            knowns_0)))
                        (let ((expr_0
                               (let ((app_2
                                      (list
                                       'quote
                                       (reverse$1
                                        (begin
                                          (letrec*
                                           ((for-loop_0
                                             (|#%name|
                                              for-loop
                                              (lambda (fold-var_0 lst_0)
                                                (begin
                                                  (if (pair? lst_0)
                                                    (let ((id_0
                                                           (unsafe-car lst_0)))
                                                      (let ((rest_0
                                                             (unsafe-cdr
                                                              lst_0)))
                                                        (let ((fold-var_1
                                                               (let ((fold-var_1
                                                                      (cons
                                                                       (variable-constance
                                                                        (unwrap
                                                                         id_0)
                                                                        knowns_0
                                                                        mutated_0)
                                                                       fold-var_0)))
                                                                 (values
                                                                  fold-var_1))))
                                                          (for-loop_0
                                                           fold-var_1
                                                           rest_0))))
                                                    fold-var_0))))))
                                           (for-loop_0 null ids_0)))))))
                                 (list*
                                  'call-with-module-prompt
                                  (list 'lambda '() rhs_0)
                                  (list 'quote ids_0)
                                  app_2
                                  (reverse$1
                                   (begin
                                     (letrec*
                                      ((for-loop_0
                                        (|#%name|
                                         for-loop
                                         (lambda (fold-var_0 lst_0)
                                           (begin
                                             (if (pair? lst_0)
                                               (let ((id_0 (unsafe-car lst_0)))
                                                 (let ((rest_0
                                                        (unsafe-cdr lst_0)))
                                                   (let ((fold-var_1
                                                          (let ((fold-var_1
                                                                 (cons
                                                                  (id-to-variable
                                                                   (unwrap
                                                                    id_0)
                                                                   exports_0
                                                                   knowns_0
                                                                   mutated_0
                                                                   extra-variables_0)
                                                                  fold-var_0)))
                                                            (values
                                                             fold-var_1))))
                                                     (for-loop_0
                                                      fold-var_1
                                                      rest_0))))
                                               fold-var_0))))))
                                      (for-loop_0 null ids_0))))))))
                          (let ((defns_0
                                 (reverse$1
                                  (begin
                                    (letrec*
                                     ((for-loop_0
                                       (|#%name|
                                        for-loop
                                        (lambda (fold-var_0 lst_0)
                                          (begin
                                            (if (pair? lst_0)
                                              (let ((id_0 (unsafe-car lst_0)))
                                                (let ((rest_0
                                                       (unsafe-cdr lst_0)))
                                                  (let ((fold-var_1
                                                         (let ((fold-var_1
                                                                (cons
                                                                 (make-define-variable
                                                                  id_0
                                                                  exports_0
                                                                  knowns_0
                                                                  mutated_0
                                                                  extra-variables_0)
                                                                 fold-var_0)))
                                                           (values
                                                            fold-var_1))))
                                                    (for-loop_0
                                                     fold-var_1
                                                     rest_0))))
                                              fold-var_0))))))
                                     (for-loop_0 null ids_0))))))
                            (let ((app_2
                                   (if for-interp?_0
                                     expr_0
                                     (make-expr-defn expr_0))))
                              (cons
                               app_2
                               (append
                                defns_0
                                (loop_0
                                 add-import!_0
                                 allow-inline?_0
                                 allow-set!-undefined?_0
                                 explicit-unnamed?_0
                                 exports_0
                                 extra-variables_0
                                 final-knowns_0
                                 for-cify?_0
                                 for-interp?_0
                                 imports_0
                                 mutated_0
                                 no-prompt?_0
                                 prim-knowns_0
                                 primitives_0
                                 simples_0
                                 unsafe-mode?_0
                                 (cdr l_0)
                                 mut-l_0
                                 null
                                 null
                                 knowns_0))))))))))))))
           (loop_0
            (|#%name|
             loop
             (lambda (add-import!_0
                      allow-inline?_0
                      allow-set!-undefined?_0
                      explicit-unnamed?_0
                      exports_0
                      extra-variables_0
                      final-knowns_0
                      for-cify?_0
                      for-interp?_0
                      imports_0
                      mutated_0
                      no-prompt?_0
                      prim-knowns_0
                      primitives_0
                      simples_0
                      unsafe-mode?_0
                      l_0
                      in-mut-l_0
                      accum-exprs_0
                      accum-ids_0
                      knowns_0)
               (begin
                 (let ((mut-l_0
                        (update-mutated-state! l_0 in-mut-l_0 mutated_0)))
                   (if (null? l_0)
                     (begin
                       (unsafe-set-box*! final-knowns_0 knowns_0)
                       (let ((set-vars_0
                              (make-set-variables_0
                               accum-ids_0
                               exports_0
                               for-cify?_0
                               for-interp?_0
                               knowns_0
                               mutated_0)))
                         (if (null? set-vars_0)
                           (if (null? accum-exprs_0)
                             '((void))
                             (reverse$1 accum-exprs_0))
                           (reverse$1 (append set-vars_0 accum-exprs_0)))))
                     (let ((form_0 (car l_0)))
                       (let ((schemified_0
                              (schemify
                               form_0
                               prim-knowns_0
                               primitives_0
                               knowns_0
                               mutated_0
                               imports_0
                               exports_0
                               simples_0
                               allow-set!-undefined?_0
                               add-import!_0
                               for-cify?_0
                               for-interp?_0
                               unsafe-mode?_0
                               allow-inline?_0
                               no-prompt?_0
                               explicit-unnamed?_0
                               (if (if no-prompt?_0 (null? (cdr l_0)) #f)
                                 'tail
                                 'fresh))))
                         (let ((hd_0
                                (let ((p_0 (unwrap schemified_0)))
                                  (if (pair? p_0) (unwrap (car p_0)) #f))))
                           (if (if (eq? 'define hd_0)
                                 (let ((a_0 (cdr (unwrap schemified_0))))
                                   (let ((p_0 (unwrap a_0)))
                                     (if (pair? p_0)
                                       (let ((a_1 (cdr p_0)))
                                         (let ((p_1 (unwrap a_1)))
                                           (if (pair? p_1)
                                             (let ((a_2 (cdr p_1)))
                                               (let ((app_0 (unwrap '())))
                                                 (eq? app_0 (unwrap a_2))))
                                             #f)))
                                       #f)))
                                 #f)
                             (call-with-values
                              (lambda ()
                                (let ((d_0 (cdr (unwrap schemified_0))))
                                  (let ((p_0 (unwrap d_0)))
                                    (let ((id_0 (let ((a_0 (car p_0))) a_0)))
                                      (let ((rhs_0
                                             (let ((d_1 (cdr p_0)))
                                               (let ((a_0 (car (unwrap d_1))))
                                                 a_0))))
                                        (let ((id_1 id_0))
                                          (values id_1 rhs_0)))))))
                              (case-lambda
                               ((id_0 rhs_0)
                                (if (simple?.1
                                     #f
                                     1
                                     rhs_0
                                     prim-knowns_0
                                     knowns_0
                                     imports_0
                                     mutated_0
                                     simples_0)
                                  (let ((temp42_0 (list id_0)))
                                    (finish-definition_0
                                     accum-exprs_0
                                     accum-ids_0
                                     add-import!_0
                                     allow-inline?_0
                                     allow-set!-undefined?_0
                                     explicit-unnamed?_0
                                     exports_0
                                     extra-variables_0
                                     final-knowns_0
                                     for-cify?_0
                                     for-interp?_0
                                     imports_0
                                     knowns_0
                                     l_0
                                     mut-l_0
                                     mutated_0
                                     no-prompt?_0
                                     prim-knowns_0
                                     primitives_0
                                     schemified_0
                                     simples_0
                                     unsafe-mode?_0
                                     unsafe-undefined
                                     #f
                                     unsafe-undefined
                                     temp42_0
                                     unsafe-undefined
                                     unsafe-undefined))
                                  (finish-wrapped-definition_0
                                   accum-exprs_0
                                   accum-ids_0
                                   add-import!_0
                                   allow-inline?_0
                                   allow-set!-undefined?_0
                                   explicit-unnamed?_0
                                   exports_0
                                   extra-variables_0
                                   final-knowns_0
                                   for-cify?_0
                                   for-interp?_0
                                   imports_0
                                   knowns_0
                                   l_0
                                   mut-l_0
                                   mutated_0
                                   no-prompt?_0
                                   prim-knowns_0
                                   primitives_0
                                   schemified_0
                                   simples_0
                                   unsafe-mode?_0
                                   (list id_0)
                                   rhs_0)))
                               (args
                                (raise-binding-result-arity-error 2 args))))
                             (if (if (eq? 'define-values hd_0)
                                   (let ((a_0 (cdr (unwrap schemified_0))))
                                     (let ((p_0 (unwrap a_0)))
                                       (if (pair? p_0)
                                         (let ((a_1 (cdr p_0)))
                                           (let ((p_1 (unwrap a_1)))
                                             (if (pair? p_1)
                                               (let ((a_2 (cdr p_1)))
                                                 (let ((app_0 (unwrap '())))
                                                   (eq? app_0 (unwrap a_2))))
                                               #f)))
                                         #f)))
                                   #f)
                               (call-with-values
                                (lambda ()
                                  (let ((d_0 (cdr (unwrap schemified_0))))
                                    (let ((p_0 (unwrap d_0)))
                                      (let ((ids_0
                                             (let ((a_0 (car p_0))) a_0)))
                                        (let ((rhs_0
                                               (let ((d_1 (cdr p_0)))
                                                 (let ((a_0
                                                        (car (unwrap d_1))))
                                                   a_0))))
                                          (let ((ids_1 ids_0))
                                            (values ids_1 rhs_0)))))))
                                (case-lambda
                                 ((ids_0 rhs_0)
                                  (if (let ((temp50_0 (length ids_0)))
                                        (simple?.1
                                         #f
                                         temp50_0
                                         rhs_0
                                         prim-knowns_0
                                         knowns_0
                                         imports_0
                                         mutated_0
                                         simples_0))
                                    (let ((hd_1
                                           (let ((p_0 (unwrap rhs_0)))
                                             (if (pair? p_0)
                                               (unwrap (car p_0))
                                               #f))))
                                      (if (if (eq? 'values hd_1)
                                            (let ((a_0 (cdr (unwrap rhs_0))))
                                              (wrap-list? a_0))
                                            #f)
                                        (let ((rhss_0
                                               (let ((d_0
                                                      (cdr (unwrap rhs_0))))
                                                 (unwrap-list d_0))))
                                          (if (if (let ((app_0
                                                         (length rhss_0)))
                                                    (= app_0 (length ids_0)))
                                                (begin
                                                  (letrec*
                                                   ((for-loop_0
                                                     (|#%name|
                                                      for-loop
                                                      (lambda (result_0 lst_0)
                                                        (begin
                                                          (if (pair? lst_0)
                                                            (let ((rhs_1
                                                                   (unsafe-car
                                                                    lst_0)))
                                                              (let ((rest_0
                                                                     (unsafe-cdr
                                                                      lst_0)))
                                                                (let ((result_1
                                                                       (let ((result_1
                                                                              (simple?.1
                                                                               #t
                                                                               1
                                                                               rhs_1
                                                                               prim-knowns_0
                                                                               knowns_0
                                                                               imports_0
                                                                               mutated_0
                                                                               simples_0)))
                                                                         (values
                                                                          result_1))))
                                                                  (if (if (not
                                                                           (let ((x_0
                                                                                  (list
                                                                                   rhs_1)))
                                                                             (not
                                                                              result_1)))
                                                                        #t
                                                                        #f)
                                                                    (for-loop_0
                                                                     result_1
                                                                     rest_0)
                                                                    result_1))))
                                                            result_0))))))
                                                   (for-loop_0 #t rhss_0)))
                                                #f)
                                            (values-loop_0
                                             accum-exprs_0
                                             accum-ids_0
                                             add-import!_0
                                             allow-inline?_0
                                             allow-set!-undefined?_0
                                             explicit-unnamed?_0
                                             exports_0
                                             extra-variables_0
                                             final-knowns_0
                                             for-cify?_0
                                             for-interp?_0
                                             imports_0
                                             knowns_0
                                             l_0
                                             mut-l_0
                                             mutated_0
                                             no-prompt?_0
                                             prim-knowns_0
                                             primitives_0
                                             schemified_0
                                             simples_0
                                             unsafe-mode?_0
                                             ids_0
                                             rhss_0
                                             accum-exprs_0
                                             accum-ids_0
                                             knowns_0)
                                            (finish-definition_0
                                             accum-exprs_0
                                             accum-ids_0
                                             add-import!_0
                                             allow-inline?_0
                                             allow-set!-undefined?_0
                                             explicit-unnamed?_0
                                             exports_0
                                             extra-variables_0
                                             final-knowns_0
                                             for-cify?_0
                                             for-interp?_0
                                             imports_0
                                             knowns_0
                                             l_0
                                             mut-l_0
                                             mutated_0
                                             no-prompt?_0
                                             prim-knowns_0
                                             primitives_0
                                             schemified_0
                                             simples_0
                                             unsafe-mode?_0
                                             unsafe-undefined
                                             #f
                                             unsafe-undefined
                                             ids_0
                                             unsafe-undefined
                                             unsafe-undefined)))
                                        (finish-definition_0
                                         accum-exprs_0
                                         accum-ids_0
                                         add-import!_0
                                         allow-inline?_0
                                         allow-set!-undefined?_0
                                         explicit-unnamed?_0
                                         exports_0
                                         extra-variables_0
                                         final-knowns_0
                                         for-cify?_0
                                         for-interp?_0
                                         imports_0
                                         knowns_0
                                         l_0
                                         mut-l_0
                                         mutated_0
                                         no-prompt?_0
                                         prim-knowns_0
                                         primitives_0
                                         schemified_0
                                         simples_0
                                         unsafe-mode?_0
                                         unsafe-undefined
                                         #f
                                         unsafe-undefined
                                         ids_0
                                         unsafe-undefined
                                         unsafe-undefined)))
                                    (finish-wrapped-definition_0
                                     accum-exprs_0
                                     accum-ids_0
                                     add-import!_0
                                     allow-inline?_0
                                     allow-set!-undefined?_0
                                     explicit-unnamed?_0
                                     exports_0
                                     extra-variables_0
                                     final-knowns_0
                                     for-cify?_0
                                     for-interp?_0
                                     imports_0
                                     knowns_0
                                     l_0
                                     mut-l_0
                                     mutated_0
                                     no-prompt?_0
                                     prim-knowns_0
                                     primitives_0
                                     schemified_0
                                     simples_0
                                     unsafe-mode?_0
                                     ids_0
                                     rhs_0)))
                                 (args
                                  (raise-binding-result-arity-error 2 args))))
                               (if (if (if (eq? 'quote hd_0)
                                         (let ((a_0
                                                (cdr (unwrap schemified_0))))
                                           (let ((p_0 (unwrap a_0)))
                                             (if (pair? p_0)
                                               (let ((a_1 (cdr p_0)))
                                                 (let ((app_0 (unwrap '())))
                                                   (eq? app_0 (unwrap a_1))))
                                               #f)))
                                         #f)
                                     (let ((or-part_0 (pair? (cdr l_0))))
                                       (if or-part_0
                                         or-part_0
                                         (pair? accum-ids_0)))
                                     #f)
                                 (loop_0
                                  add-import!_0
                                  allow-inline?_0
                                  allow-set!-undefined?_0
                                  explicit-unnamed?_0
                                  exports_0
                                  extra-variables_0
                                  final-knowns_0
                                  for-cify?_0
                                  for-interp?_0
                                  imports_0
                                  mutated_0
                                  no-prompt?_0
                                  prim-knowns_0
                                  primitives_0
                                  simples_0
                                  unsafe-mode?_0
                                  (cdr l_0)
                                  mut-l_0
                                  accum-exprs_0
                                  accum-ids_0
                                  knowns_0)
                                 (let ((hd_1
                                        (let ((p_0 (unwrap form_0)))
                                          (if (pair? p_0)
                                            (unwrap (car p_0))
                                            #f))))
                                   (if (if (eq? 'define-values hd_1)
                                         (let ((a_0 (cdr (unwrap form_0))))
                                           (let ((p_0 (unwrap a_0)))
                                             (if (pair? p_0)
                                               (let ((a_1 (cdr p_0)))
                                                 (let ((p_1 (unwrap a_1)))
                                                   (if (pair? p_1)
                                                     (let ((a_2 (cdr p_1)))
                                                       (let ((app_0
                                                              (unwrap '())))
                                                         (eq?
                                                          app_0
                                                          (unwrap a_2))))
                                                     #f)))
                                               #f)))
                                         #f)
                                     (let ((ids_0
                                            (let ((d_0 (cdr (unwrap form_0))))
                                              (let ((a_0 (car (unwrap d_0))))
                                                a_0))))
                                       (let ((set-vars_0
                                              (make-set-variables_0
                                               accum-ids_0
                                               exports_0
                                               for-cify?_0
                                               for-interp?_0
                                               knowns_0
                                               mutated_0)))
                                         (let ((temp66_0
                                                (append
                                                 set-vars_0
                                                 accum-exprs_0)))
                                           (finish-definition_0
                                            accum-exprs_0
                                            accum-ids_0
                                            add-import!_0
                                            allow-inline?_0
                                            allow-set!-undefined?_0
                                            explicit-unnamed?_0
                                            exports_0
                                            extra-variables_0
                                            final-knowns_0
                                            for-cify?_0
                                            for-interp?_0
                                            imports_0
                                            knowns_0
                                            l_0
                                            mut-l_0
                                            mutated_0
                                            no-prompt?_0
                                            prim-knowns_0
                                            primitives_0
                                            schemified_0
                                            simples_0
                                            unsafe-mode?_0
                                            unsafe-undefined
                                            #f
                                            unsafe-undefined
                                            ids_0
                                            temp66_0
                                            null))))
                                     (if (simple?.1
                                          #f
                                          #f
                                          schemified_0
                                          prim-knowns_0
                                          knowns_0
                                          imports_0
                                          mutated_0
                                          simples_0)
                                       (loop_0
                                        add-import!_0
                                        allow-inline?_0
                                        allow-set!-undefined?_0
                                        explicit-unnamed?_0
                                        exports_0
                                        extra-variables_0
                                        final-knowns_0
                                        for-cify?_0
                                        for-interp?_0
                                        imports_0
                                        mutated_0
                                        no-prompt?_0
                                        prim-knowns_0
                                        primitives_0
                                        simples_0
                                        unsafe-mode?_0
                                        (cdr l_0)
                                        mut-l_0
                                        (cons schemified_0 accum-exprs_0)
                                        accum-ids_0
                                        knowns_0)
                                       (let ((set-vars_0
                                              (make-set-variables_0
                                               accum-ids_0
                                               exports_0
                                               for-cify?_0
                                               for-interp?_0
                                               knowns_0
                                               mutated_0)))
                                         (let ((expr_0
                                                (if no-prompt?_0
                                                  schemified_0
                                                  (list
                                                   'call-with-module-prompt
                                                   (list
                                                    'lambda
                                                    '()
                                                    schemified_0)))))
                                           (let ((app_0 (cdr l_0)))
                                             (loop_0
                                              add-import!_0
                                              allow-inline?_0
                                              allow-set!-undefined?_0
                                              explicit-unnamed?_0
                                              exports_0
                                              extra-variables_0
                                              final-knowns_0
                                              for-cify?_0
                                              for-interp?_0
                                              imports_0
                                              mutated_0
                                              no-prompt?_0
                                              prim-knowns_0
                                              primitives_0
                                              simples_0
                                              unsafe-mode?_0
                                              app_0
                                              mut-l_0
                                              (cons
                                               expr_0
                                               (append
                                                set-vars_0
                                                accum-exprs_0))
                                              null
                                              knowns_0)))))))))))))))))))
           (loop_1
            (|#%name|
             loop
             (lambda (exports_0
                      knowns_0
                      mutated_0
                      accum-ids_0
                      consistent-ids_0)
               (begin
                 (if (null? accum-ids_0)
                   (make-set-consistent-variables
                    consistent-ids_0
                    exports_0
                    knowns_0
                    mutated_0)
                   (let ((id_0 (car accum-ids_0)))
                     (let ((u-id_0 (unwrap id_0)))
                       (if (hash-ref exports_0 u-id_0 #f)
                         (if (eq?
                              'consistent
                              (variable-constance u-id_0 knowns_0 mutated_0))
                           (loop_1
                            exports_0
                            knowns_0
                            mutated_0
                            (cdr accum-ids_0)
                            (cons id_0 consistent-ids_0))
                           (let ((app_0
                                  (make-set-consistent-variables
                                   consistent-ids_0
                                   exports_0
                                   knowns_0
                                   mutated_0)))
                             (append
                              app_0
                              (let ((app_1
                                     (make-set-variable
                                      id_0
                                      exports_0
                                      knowns_0
                                      mutated_0)))
                                (cons
                                 app_1
                                 (loop_1
                                  exports_0
                                  knowns_0
                                  mutated_0
                                  (cdr accum-ids_0)
                                  '()))))))
                         (loop_1
                          exports_0
                          knowns_0
                          mutated_0
                          (cdr accum-ids_0)
                          consistent-ids_0)))))))))
           (make-expr-defns_0
            (|#%name|
             make-expr-defns
             (lambda (for-cify?_0 for-interp?_0 es_0)
               (begin
                 (if (if for-interp?_0 for-interp?_0 for-cify?_0)
                   (reverse$1 es_0)
                   (reverse$1
                    (let ((lst_0 (reverse$1 es_0)))
                      (begin
                        (letrec*
                         ((for-loop_0
                           (|#%name|
                            for-loop
                            (lambda (fold-var_0 lst_1)
                              (begin
                                (if (pair? lst_1)
                                  (let ((e_0 (unsafe-car lst_1)))
                                    (let ((rest_0 (unsafe-cdr lst_1)))
                                      (let ((fold-var_1
                                             (let ((fold-var_1
                                                    (cons
                                                     (make-expr-defn e_0)
                                                     fold-var_0)))
                                               (values fold-var_1))))
                                        (for-loop_0 fold-var_1 rest_0))))
                                  fold-var_0))))))
                         (for-loop_0 null lst_0))))))))))
           (make-set-variables_0
            (|#%name|
             make-set-variables
             (lambda (accum-ids_0
                      exports_0
                      for-cify?_0
                      for-interp?_0
                      knowns_0
                      mutated_0)
               (begin
                 (if (if for-cify?_0 for-cify?_0 for-interp?_0)
                   (reverse$1
                    (begin
                      (letrec*
                       ((for-loop_0
                         (|#%name|
                          for-loop
                          (lambda (fold-var_0 lst_0)
                            (begin
                              (if (pair? lst_0)
                                (let ((id_0 (unsafe-car lst_0)))
                                  (let ((rest_0 (unsafe-cdr lst_0)))
                                    (let ((fold-var_1
                                           (if (hash-ref
                                                exports_0
                                                (unwrap id_0)
                                                #f)
                                             (let ((fold-var_1
                                                    (cons
                                                     (make-set-variable
                                                      id_0
                                                      exports_0
                                                      knowns_0
                                                      mutated_0)
                                                     fold-var_0)))
                                               (values fold-var_1))
                                             fold-var_0)))
                                      (for-loop_0 fold-var_1 rest_0))))
                                fold-var_0))))))
                       (for-loop_0 null accum-ids_0))))
                   (loop_1 exports_0 knowns_0 mutated_0 accum-ids_0 null))))))
           (values-loop_0
            (|#%name|
             values-loop
             (lambda (accum-exprs_0
                      accum-ids_0
                      add-import!_0
                      allow-inline?_0
                      allow-set!-undefined?_0
                      explicit-unnamed?_0
                      exports_0
                      extra-variables_0
                      final-knowns_0
                      for-cify?_0
                      for-interp?_0
                      imports_0
                      knowns_0
                      l_0
                      mut-l_0
                      mutated_0
                      no-prompt?_0
                      prim-knowns_0
                      primitives_0
                      schemified_0
                      simples_0
                      unsafe-mode?_0
                      ids_0
                      rhss_0
                      accum-exprs_1
                      accum-ids_1
                      knowns_1)
               (begin
                 (if (null? ids_0)
                   (loop_0
                    add-import!_0
                    allow-inline?_0
                    allow-set!-undefined?_0
                    explicit-unnamed?_0
                    exports_0
                    extra-variables_0
                    final-knowns_0
                    for-cify?_0
                    for-interp?_0
                    imports_0
                    mutated_0
                    no-prompt?_0
                    prim-knowns_0
                    primitives_0
                    simples_0
                    unsafe-mode?_0
                    (cdr l_0)
                    mut-l_0
                    accum-exprs_1
                    accum-ids_1
                    knowns_1)
                   (let ((id_0 (car ids_0)))
                     (let ((rhs_0 (car rhss_0)))
                       (let ((temp57_0 (list id_0)))
                         (let ((temp61_0 (list 'define id_0 rhs_0)))
                           (let ((temp62_0
                                  (lambda (accum-exprs_2 accum-ids_2 knowns_2)
                                    (let ((app_0 (cdr ids_0)))
                                      (values-loop_0
                                       accum-exprs_0
                                       accum-ids_0
                                       add-import!_0
                                       allow-inline?_0
                                       allow-set!-undefined?_0
                                       explicit-unnamed?_0
                                       exports_0
                                       extra-variables_0
                                       final-knowns_0
                                       for-cify?_0
                                       for-interp?_0
                                       imports_0
                                       knowns_0
                                       l_0
                                       mut-l_0
                                       mutated_0
                                       no-prompt?_0
                                       prim-knowns_0
                                       primitives_0
                                       schemified_0
                                       simples_0
                                       unsafe-mode?_0
                                       app_0
                                       (cdr rhss_0)
                                       accum-exprs_2
                                       accum-ids_2
                                       knowns_2)))))
                             (finish-definition_0
                              accum-exprs_0
                              accum-ids_0
                              add-import!_0
                              allow-inline?_0
                              allow-set!-undefined?_0
                              explicit-unnamed?_0
                              exports_0
                              extra-variables_0
                              final-knowns_0
                              for-cify?_0
                              for-interp?_0
                              imports_0
                              knowns_0
                              l_0
                              mut-l_0
                              mutated_0
                              no-prompt?_0
                              prim-knowns_0
                              primitives_0
                              schemified_0
                              simples_0
                              unsafe-mode?_0
                              knowns_1
                              temp62_0
                              temp61_0
                              temp57_0
                              accum-exprs_1
                              accum-ids_1))))))))))))
    (lambda (l_0
             prim-knowns_0
             primitives_0
             imports_0
             exports_0
             for-interp?_0
             allow-set!-undefined?_0
             add-import!_0
             for-cify?_0
             unsafe-mode?_0
             enforce-constant?_0
             allow-inline?_0
             no-prompt?_0
             explicit-unnamed?_0)
      (let ((simples_0 (make-hasheq)))
        (let ((mutated_0
               (mutated-in-body
                l_0
                exports_0
                prim-knowns_0
                (hasheq)
                imports_0
                simples_0
                unsafe-mode?_0
                enforce-constant?_0)))
          (let ((knowns_0
                 (begin
                   (letrec*
                    ((for-loop_0
                      (|#%name|
                       for-loop
                       (lambda (knowns_0 lst_0)
                         (begin
                           (if (pair? lst_0)
                             (let ((form_0 (unsafe-car lst_0)))
                               (let ((rest_0 (unsafe-cdr lst_0)))
                                 (let ((knowns_1
                                        (let ((knowns_1
                                               (call-with-values
                                                (lambda ()
                                                  (find-definitions.1
                                                   #t
                                                   primitives_0
                                                   form_0
                                                   prim-knowns_0
                                                   knowns_0
                                                   imports_0
                                                   mutated_0
                                                   simples_0
                                                   unsafe-mode?_0))
                                                (case-lambda
                                                 ((new-knowns_0 info_0)
                                                  new-knowns_0)
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   2
                                                   args))))))
                                          (values knowns_1))))
                                   (for-loop_0 knowns_1 rest_0))))
                             knowns_0))))))
                    (for-loop_0 (hasheq) l_0)))))
            (let ((extra-variables_0 (make-hasheq)))
              (let ((final-knowns_0 (box knowns_0)))
                (let ((schemified_0
                       (loop_0
                        add-import!_0
                        allow-inline?_0
                        allow-set!-undefined?_0
                        explicit-unnamed?_0
                        exports_0
                        extra-variables_0
                        final-knowns_0
                        for-cify?_0
                        for-interp?_0
                        imports_0
                        mutated_0
                        no-prompt?_0
                        prim-knowns_0
                        primitives_0
                        simples_0
                        unsafe-mode?_0
                        l_0
                        l_0
                        null
                        null
                        knowns_0)))
                  (let ((app_0
                         (add-extra-variables_0
                          extra-variables_0
                          schemified_0)))
                    (values
                     app_0
                     (unsafe-unbox* final-knowns_0)
                     mutated_0)))))))))))
(define make-set-variable
  (let ((make-set-variable_0
         (|#%name|
          make-set-variable
          (lambda (id2_0 exports3_0 knowns4_0 mutated5_0 extra-variables1_0)
            (begin
              (let ((int-id_0 (unwrap id2_0)))
                (let ((ex-id_0
                       (id-to-variable
                        int-id_0
                        exports3_0
                        knowns4_0
                        mutated5_0
                        extra-variables1_0)))
                  (list
                   'variable-set!/define
                   ex-id_0
                   id2_0
                   (list
                    'quote
                    (variable-constance int-id_0 knowns4_0 mutated5_0))))))))))
    (case-lambda
     ((id_0 exports_0 knowns_0 mutated_0)
      (make-set-variable_0 id_0 exports_0 knowns_0 mutated_0 #f))
     ((id_0 exports_0 knowns_0 mutated_0 extra-variables1_0)
      (make-set-variable_0
       id_0
       exports_0
       knowns_0
       mutated_0
       extra-variables1_0)))))
(define make-set-consistent-variables
  (lambda (ids_0 exports_0 knowns_0 mutated_0)
    (if (null? ids_0)
      null
      (if (null? (cdr ids_0))
        (list (make-set-variable (car ids_0) exports_0 knowns_0 mutated_0))
        (let ((ex-ids_0
               (reverse$1
                (begin
                  (letrec*
                   ((for-loop_0
                     (|#%name|
                      for-loop
                      (lambda (fold-var_0 lst_0)
                        (begin
                          (if (pair? lst_0)
                            (let ((id_0 (unsafe-car lst_0)))
                              (let ((rest_0 (unsafe-cdr lst_0)))
                                (let ((fold-var_1
                                       (let ((fold-var_1
                                              (cons
                                               (id-to-variable
                                                (unwrap id_0)
                                                exports_0
                                                knowns_0
                                                mutated_0
                                                #f)
                                               fold-var_0)))
                                         (values fold-var_1))))
                                  (for-loop_0 fold-var_1 rest_0))))
                            fold-var_0))))))
                   (for-loop_0 null ids_0))))))
          (list
           (list
            'set-consistent-variables!/define
            (list* 'vector ex-ids_0)
            (list* 'vector ids_0))))))))
(define id-to-variable
  (lambda (int-id_0 exports_0 knowns_0 mutated_0 extra-variables_0)
    (export-id
     (let ((or-part_0 (hash-ref exports_0 int-id_0 #f)))
       (if or-part_0
         or-part_0
         (if extra-variables_0
           (let ((or-part_1 (hash-ref extra-variables_0 int-id_0 #f)))
             (if or-part_1
               or-part_1
               (let ((ex_0
                      (export1.1 (deterministic-gensym int-id_0) int-id_0)))
                 (begin (hash-set! extra-variables_0 int-id_0 ex_0) ex_0))))
           #f))))))
(define make-define-variable
  (lambda (id_0 exports_0 knowns_0 mutated_0 extra-variables_0)
    (let ((int-id_0 (unwrap id_0)))
      (let ((ex_0
             (let ((or-part_0 (hash-ref exports_0 int-id_0 #f)))
               (if or-part_0
                 or-part_0
                 (hash-ref extra-variables_0 int-id_0)))))
        (list 'define id_0 (list 'variable-ref/no-check (export-id ex_0)))))))
(define make-expr-defn
  (lambda (expr_0)
    (list
     'define
     (deterministic-gensym "effect")
     (list* 'begin expr_0 '((void))))))
(define variable-constance
  (lambda (id_0 knowns_0 mutated_0)
    (if (set!ed-mutated-state? (hash-ref mutated_0 id_0 #f))
      #f
      (if (known-consistent? (hash-ref knowns_0 id_0 #f))
        'consistent
        'constant))))
(define schemify
  (letrec ((inline-field-access_0
            (|#%name|
             inline-field-access
             (lambda (add-import!_0
                      allow-inline?_0
                      allow-set!-undefined?_0
                      explicit-unnamed?_0
                      exports_0
                      for-cify?_0
                      for-interp?_0
                      imports_0
                      inline-fuel_0
                      knowns_0
                      mutated_0
                      no-prompt?_0
                      prim-knowns_0
                      primitives_0
                      simples_0
                      unsafe-mode?_0
                      k_0
                      s-rator_0
                      im_0
                      args_0)
               (begin
                 (let ((type-id_0
                        (if (if im_0 im_0 for-interp?_0)
                          (if (pair? args_0)
                            (if (null? (cdr args_0))
                              (inline-type-id
                               k_0
                               im_0
                               add-import!_0
                               mutated_0
                               imports_0)
                              #f)
                            #f)
                          #f)))
                   (if type-id_0
                     (let ((tmp_0
                            (maybe-tmp_0
                             imports_0
                             knowns_0
                             mutated_0
                             prim-knowns_0
                             (car args_0)
                             'v)))
                       (let ((sel_0
                              (let ((app_0
                                     (list
                                      'unsafe-struct?
                                      tmp_0
                                      (schemify_0
                                       add-import!_0
                                       allow-inline?_0
                                       allow-set!-undefined?_0
                                       explicit-unnamed?_0
                                       exports_0
                                       for-cify?_0
                                       for-interp?_0
                                       imports_0
                                       inline-fuel_0
                                       knowns_0
                                       mutated_0
                                       no-prompt?_0
                                       prim-knowns_0
                                       primitives_0
                                       simples_0
                                       unsafe-mode?_0
                                       type-id_0
                                       'fresh))))
                                (list
                                 'if
                                 app_0
                                 (list
                                  'unsafe-struct*-ref
                                  tmp_0
                                  (known-field-accessor-pos k_0))
                                 (list s-rator_0 tmp_0)))))
                         (wrap-tmp_0 tmp_0 (car args_0) sel_0)))
                     #f))))))
           (inline-field-mutate_0
            (|#%name|
             inline-field-mutate
             (lambda (add-import!_0
                      allow-inline?_0
                      allow-set!-undefined?_0
                      explicit-unnamed?_0
                      exports_0
                      for-cify?_0
                      for-interp?_0
                      imports_0
                      inline-fuel_0
                      knowns_0
                      mutated_0
                      no-prompt?_0
                      prim-knowns_0
                      primitives_0
                      simples_0
                      unsafe-mode?_0
                      k_0
                      s-rator_0
                      im_0
                      args_0)
               (begin
                 (let ((type-id_0
                        (if (if im_0 im_0 for-interp?_0)
                          (if (pair? args_0)
                            (if (pair? (cdr args_0))
                              (if (null? (cddr args_0))
                                (inline-type-id
                                 k_0
                                 im_0
                                 add-import!_0
                                 mutated_0
                                 imports_0)
                                #f)
                              #f)
                            #f)
                          #f)))
                   (if type-id_0
                     (let ((tmp_0
                            (maybe-tmp_0
                             imports_0
                             knowns_0
                             mutated_0
                             prim-knowns_0
                             (car args_0)
                             'v)))
                       (let ((tmp-rhs_0
                              (maybe-tmp_0
                               imports_0
                               knowns_0
                               mutated_0
                               prim-knowns_0
                               (cadr args_0)
                               'rhs)))
                         (let ((mut_0
                                (let ((app_0
                                       (list
                                        'unsafe-struct?
                                        tmp_0
                                        (schemify_0
                                         add-import!_0
                                         allow-inline?_0
                                         allow-set!-undefined?_0
                                         explicit-unnamed?_0
                                         exports_0
                                         for-cify?_0
                                         for-interp?_0
                                         imports_0
                                         inline-fuel_0
                                         knowns_0
                                         mutated_0
                                         no-prompt?_0
                                         prim-knowns_0
                                         primitives_0
                                         simples_0
                                         unsafe-mode?_0
                                         type-id_0
                                         'fresh))))
                                  (list
                                   'if
                                   app_0
                                   (list
                                    'unsafe-struct*-set!
                                    tmp_0
                                    (known-field-mutator-pos k_0)
                                    tmp-rhs_0)
                                   (list s-rator_0 tmp_0 tmp-rhs_0)))))
                           (let ((app_0 (car args_0)))
                             (wrap-tmp_0
                              tmp_0
                              app_0
                              (wrap-tmp_0 tmp-rhs_0 (cadr args_0) mut_0))))))
                     #f))))))
           (inline-rator_0
            (|#%name|
             inline-rator
             (lambda (add-import!_0
                      allow-inline?_0
                      allow-set!-undefined?_0
                      explicit-unnamed?_0
                      exports_0
                      exps_0
                      for-cify?_0
                      for-interp?_0
                      imports_0
                      inline-fuel_0
                      knowns_0
                      mutated_0
                      no-prompt?_0
                      prim-knowns_0
                      primitives_0
                      rator_0
                      simples_0
                      unsafe-mode?_0
                      wcm-state_0)
               (begin
                 (let ((u-rator_0 (unwrap rator_0)))
                   (if allow-inline?_0
                     (if (symbol? u-rator_0)
                       (call-with-values
                        (lambda ()
                          (find-known+import
                           u-rator_0
                           prim-knowns_0
                           knowns_0
                           imports_0
                           mutated_0))
                        (case-lambda
                         ((k_0 im_0)
                          (if (known-procedure/can-inline? k_0)
                            (let ((app_0
                                   (inline-clone
                                    k_0
                                    im_0
                                    add-import!_0
                                    mutated_0
                                    imports_0)))
                              (left-left-lambda-convert_0
                               add-import!_0
                               allow-inline?_0
                               allow-set!-undefined?_0
                               explicit-unnamed?_0
                               exports_0
                               exps_0
                               for-cify?_0
                               for-interp?_0
                               imports_0
                               knowns_0
                               mutated_0
                               no-prompt?_0
                               prim-knowns_0
                               primitives_0
                               simples_0
                               unsafe-mode?_0
                               wcm-state_0
                               app_0
                               (sub1 inline-fuel_0)))
                            #f))
                         (args (raise-binding-result-arity-error 2 args))))
                       #f)
                     #f))))))
           (inline-struct-predicate_0
            (|#%name|
             inline-struct-predicate
             (lambda (add-import!_0
                      allow-inline?_0
                      allow-set!-undefined?_0
                      explicit-unnamed?_0
                      exports_0
                      for-cify?_0
                      for-interp?_0
                      imports_0
                      inline-fuel_0
                      knowns_0
                      mutated_0
                      no-prompt?_0
                      prim-knowns_0
                      primitives_0
                      simples_0
                      unsafe-mode?_0
                      k_0
                      s-rator_0
                      im_0
                      args_0)
               (begin
                 (let ((type-id_0
                        (if im_0
                          (if (known-struct-predicate-authentic? k_0)
                            (if (pair? args_0)
                              (if (null? (cdr args_0))
                                (inline-type-id
                                 k_0
                                 im_0
                                 add-import!_0
                                 mutated_0
                                 imports_0)
                                #f)
                              #f)
                            #f)
                          #f)))
                   (if type-id_0
                     (let ((tmp_0
                            (maybe-tmp_0
                             imports_0
                             knowns_0
                             mutated_0
                             prim-knowns_0
                             (car args_0)
                             'v)))
                       (let ((ques_0
                              (list
                               'unsafe-struct?
                               tmp_0
                               (schemify_0
                                add-import!_0
                                allow-inline?_0
                                allow-set!-undefined?_0
                                explicit-unnamed?_0
                                exports_0
                                for-cify?_0
                                for-interp?_0
                                imports_0
                                inline-fuel_0
                                knowns_0
                                mutated_0
                                no-prompt?_0
                                prim-knowns_0
                                primitives_0
                                simples_0
                                unsafe-mode?_0
                                type-id_0
                                'fresh))))
                         (wrap-tmp_0 tmp_0 (car args_0) ques_0)))
                     #f))))))
           (left-left-lambda-convert_0
            (|#%name|
             left-left-lambda-convert
             (lambda (add-import!_0
                      allow-inline?_0
                      allow-set!-undefined?_0
                      explicit-unnamed?_0
                      exports_0
                      exps_0
                      for-cify?_0
                      for-interp?_0
                      imports_0
                      knowns_0
                      mutated_0
                      no-prompt?_0
                      prim-knowns_0
                      primitives_0
                      simples_0
                      unsafe-mode?_0
                      wcm-state_0
                      rator_0
                      inline-fuel_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap rator_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'lambda hd_0)
                         (let ((a_0 (cdr (unwrap rator_0))))
                           (let ((p_0 (unwrap a_0)))
                             (if (pair? p_0)
                               (let ((a_1 (cdr p_0))) (wrap-list? a_1))
                               #f)))
                         #f)
                     (call-with-values
                      (lambda ()
                        (let ((d_0 (cdr (unwrap rator_0))))
                          (let ((p_0 (unwrap d_0)))
                            (let ((formal-args_0 (let ((a_0 (car p_0))) a_0)))
                              (let ((bodys_0
                                     (let ((d_1 (cdr p_0)))
                                       (unwrap-list d_1))))
                                (let ((formal-args_1 formal-args_0))
                                  (values formal-args_1 bodys_0)))))))
                      (case-lambda
                       ((formal-args_0 bodys_0)
                        (letrec*
                         ((loop_0
                           (|#%name|
                            loop
                            (lambda (formal-args_1 args_0 binds_0)
                              (begin
                                (if (null? formal-args_1)
                                  (if (null? args_0)
                                    (schemify/knowns_0
                                     add-import!_0
                                     allow-inline?_0
                                     allow-set!-undefined?_0
                                     explicit-unnamed?_0
                                     exports_0
                                     for-cify?_0
                                     for-interp?_0
                                     imports_0
                                     mutated_0
                                     no-prompt?_0
                                     prim-knowns_0
                                     primitives_0
                                     simples_0
                                     unsafe-mode?_0
                                     knowns_0
                                     inline-fuel_0
                                     wcm-state_0
                                     (list*
                                      'let-values
                                      (reverse$1 binds_0)
                                      bodys_0))
                                    #f)
                                  (if (null? args_0)
                                    #f
                                    (if (not (pair? formal-args_1))
                                      (loop_0
                                       '()
                                       '()
                                       (cons
                                        (list
                                         (list formal-args_1)
                                         (if (null? args_0)
                                           ''()
                                           (cons 'list args_0)))
                                        binds_0))
                                      (let ((app_0 (cdr formal-args_1)))
                                        (let ((app_1 (cdr args_0)))
                                          (loop_0
                                           app_0
                                           app_1
                                           (cons
                                            (let ((app_2
                                                   (list (car formal-args_1))))
                                              (list app_2 (car args_0)))
                                            binds_0))))))))))))
                         (loop_0 formal-args_0 exps_0 '())))
                       (args (raise-binding-result-arity-error 2 args))))
                     (if (if (eq? 'case-lambda hd_0)
                           (let ((a_0 (cdr (unwrap rator_0))))
                             (let ((p_0 (unwrap a_0)))
                               (if (pair? p_0)
                                 (if (let ((a_1 (car p_0)))
                                       (let ((p_1 (unwrap a_1)))
                                         (if (pair? p_1)
                                           (let ((a_2 (cdr p_1)))
                                             (wrap-list? a_2))
                                           #f)))
                                   #t
                                   #f)
                                 #f)))
                           #f)
                       (call-with-values
                        (lambda ()
                          (let ((d_0 (cdr (unwrap rator_0))))
                            (let ((p_0 (unwrap d_0)))
                              (call-with-values
                               (lambda ()
                                 (let ((a_0 (car p_0)))
                                   (let ((p_1 (unwrap a_0)))
                                     (let ((formal-args_0
                                            (let ((a_1 (car p_1))) a_1)))
                                       (let ((bodys_0
                                              (let ((d_1 (cdr p_1)))
                                                (unwrap-list d_1))))
                                         (let ((formal-args_1 formal-args_0))
                                           (values formal-args_1 bodys_0)))))))
                               (case-lambda
                                ((formal-args_0 bodys_0)
                                 (let ((rest_0 (let ((d_1 (cdr p_0))) d_1)))
                                   (let ((formal-args_1 formal-args_0)
                                         (bodys_1 bodys_0))
                                     (values formal-args_1 bodys_1 rest_0))))
                                (args
                                 (raise-binding-result-arity-error
                                  2
                                  args)))))))
                        (case-lambda
                         ((formal-args_0 bodys_0 rest_0)
                          (let ((or-part_0
                                 (left-left-lambda-convert_0
                                  add-import!_0
                                  allow-inline?_0
                                  allow-set!-undefined?_0
                                  explicit-unnamed?_0
                                  exports_0
                                  exps_0
                                  for-cify?_0
                                  for-interp?_0
                                  imports_0
                                  knowns_0
                                  mutated_0
                                  no-prompt?_0
                                  prim-knowns_0
                                  primitives_0
                                  simples_0
                                  unsafe-mode?_0
                                  wcm-state_0
                                  (list* 'lambda formal-args_0 bodys_0)
                                  inline-fuel_0)))
                            (if or-part_0
                              or-part_0
                              (left-left-lambda-convert_0
                               add-import!_0
                               allow-inline?_0
                               allow-set!-undefined?_0
                               explicit-unnamed?_0
                               exports_0
                               exps_0
                               for-cify?_0
                               for-interp?_0
                               imports_0
                               knowns_0
                               mutated_0
                               no-prompt?_0
                               prim-knowns_0
                               primitives_0
                               simples_0
                               unsafe-mode?_0
                               wcm-state_0
                               (list* 'case-lambda rest_0)
                               inline-fuel_0))))
                         (args (raise-binding-result-arity-error 3 args))))
                       #f)))))))
           (maybe-tmp_0
            (|#%name|
             maybe-tmp
             (lambda (imports_0 knowns_0 mutated_0 prim-knowns_0 e_0 name_0)
               (begin
                 (if (simple/can-copy?
                      e_0
                      prim-knowns_0
                      knowns_0
                      imports_0
                      mutated_0)
                   e_0
                   (deterministic-gensym name_0))))))
           (merely-a-copy?_0
            (|#%name|
             merely-a-copy?
             (lambda (mutated_0 new-knowns_0 id_0)
               (begin
                 (let ((u-id_0 (unwrap id_0)))
                   (let ((k_0 (hash-ref new-knowns_0 u-id_0 #f)))
                     (if (let ((or-part_0 (known-copy? k_0)))
                           (if or-part_0 or-part_0 (known-literal? k_0)))
                       (simple-mutated-state? (hash-ref mutated_0 u-id_0 #f))
                       #f)))))))
           (schemify-body_0
            (|#%name|
             schemify-body
             (lambda (add-import!_0
                      allow-inline?_0
                      allow-set!-undefined?_0
                      explicit-unnamed?_0
                      exports_0
                      for-cify?_0
                      for-interp?_0
                      imports_0
                      inline-fuel_0
                      knowns_0
                      mutated_0
                      no-prompt?_0
                      prim-knowns_0
                      primitives_0
                      simples_0
                      unsafe-mode?_0
                      l_0
                      wcm-state_0)
               (begin
                 (if (null? l_0)
                   null
                   (if (null? (cdr l_0))
                     (list
                      (schemify_0
                       add-import!_0
                       allow-inline?_0
                       allow-set!-undefined?_0
                       explicit-unnamed?_0
                       exports_0
                       for-cify?_0
                       for-interp?_0
                       imports_0
                       inline-fuel_0
                       knowns_0
                       mutated_0
                       no-prompt?_0
                       prim-knowns_0
                       primitives_0
                       simples_0
                       unsafe-mode?_0
                       (car l_0)
                       wcm-state_0))
                     (let ((app_0
                            (schemify_0
                             add-import!_0
                             allow-inline?_0
                             allow-set!-undefined?_0
                             explicit-unnamed?_0
                             exports_0
                             for-cify?_0
                             for-interp?_0
                             imports_0
                             inline-fuel_0
                             knowns_0
                             mutated_0
                             no-prompt?_0
                             prim-knowns_0
                             primitives_0
                             simples_0
                             unsafe-mode?_0
                             (car l_0)
                             'fresh)))
                       (cons
                        app_0
                        (schemify-body_0
                         add-import!_0
                         allow-inline?_0
                         allow-set!-undefined?_0
                         explicit-unnamed?_0
                         exports_0
                         for-cify?_0
                         for-interp?_0
                         imports_0
                         inline-fuel_0
                         knowns_0
                         mutated_0
                         no-prompt?_0
                         prim-knowns_0
                         primitives_0
                         simples_0
                         unsafe-mode?_0
                         (cdr l_0)
                         wcm-state_0)))))))))
           (schemify/knowns_0
            (|#%name|
             schemify/knowns
             (lambda (add-import!_0
                      allow-inline?_0
                      allow-set!-undefined?_0
                      explicit-unnamed?_0
                      exports_0
                      for-cify?_0
                      for-interp?_0
                      imports_0
                      mutated_0
                      no-prompt?_0
                      prim-knowns_0
                      primitives_0
                      simples_0
                      unsafe-mode?_0
                      knowns_0
                      inline-fuel_0
                      wcm-state_0
                      v_0)
               (begin
                 (schemify_0
                  add-import!_0
                  allow-inline?_0
                  allow-set!-undefined?_0
                  explicit-unnamed?_0
                  exports_0
                  for-cify?_0
                  for-interp?_0
                  imports_0
                  inline-fuel_0
                  knowns_0
                  mutated_0
                  no-prompt?_0
                  prim-knowns_0
                  primitives_0
                  simples_0
                  unsafe-mode?_0
                  v_0
                  wcm-state_0)))))
           (schemify_0
            (|#%name|
             schemify
             (lambda (add-import!_0
                      allow-inline?_0
                      allow-set!-undefined?_0
                      explicit-unnamed?_0
                      exports_0
                      for-cify?_0
                      for-interp?_0
                      imports_0
                      inline-fuel_0
                      knowns_0
                      mutated_0
                      no-prompt?_0
                      prim-knowns_0
                      primitives_0
                      simples_0
                      unsafe-mode?_0
                      v_0
                      wcm-state_0)
               (begin
                 (let ((s-v_0
                        (reannotate
                         v_0
                         (let ((hd_0
                                (let ((p_0 (unwrap v_0)))
                                  (if (pair? p_0) (unwrap (car p_0)) #f))))
                           (if (if (eq? 'lambda hd_0)
                                 (let ((a_0 (cdr (unwrap v_0))))
                                   (let ((p_0 (unwrap a_0)))
                                     (if (pair? p_0)
                                       (let ((a_1 (cdr p_0))) (wrap-list? a_1))
                                       #f)))
                                 #f)
                             (call-with-values
                              (lambda ()
                                (let ((d_0 (cdr (unwrap v_0))))
                                  (let ((p_0 (unwrap d_0)))
                                    (let ((formals_0
                                           (let ((a_0 (car p_0))) a_0)))
                                      (let ((body_0
                                             (let ((d_1 (cdr p_0)))
                                               (unwrap-list d_1))))
                                        (let ((formals_1 formals_0))
                                          (values formals_1 body_0)))))))
                              (case-lambda
                               ((formals_0 body_0)
                                (infer-procedure-name
                                 v_0
                                 (list*
                                  'lambda
                                  formals_0
                                  (schemify-body_0
                                   add-import!_0
                                   allow-inline?_0
                                   allow-set!-undefined?_0
                                   explicit-unnamed?_0
                                   exports_0
                                   for-cify?_0
                                   for-interp?_0
                                   imports_0
                                   inline-fuel_0
                                   knowns_0
                                   mutated_0
                                   no-prompt?_0
                                   prim-knowns_0
                                   primitives_0
                                   simples_0
                                   unsafe-mode?_0
                                   body_0
                                   'tail))
                                 explicit-unnamed?_0))
                               (args
                                (raise-binding-result-arity-error 2 args))))
                             (if (if (eq? 'case-lambda hd_0)
                                   (let ((a_0 (cdr (unwrap v_0))))
                                     (if (wrap-list? a_0)
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (result_0 lst_0)
                                               (begin
                                                 (if (not
                                                      (null? (unwrap lst_0)))
                                                   (let ((v_1
                                                          (if (pair?
                                                               (unwrap lst_0))
                                                            (wrap-car lst_0)
                                                            lst_0)))
                                                     (let ((rest_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-cdr lst_0)
                                                              null)))
                                                       (let ((v_2 v_1))
                                                         (let ((result_1
                                                                (let ((result_1
                                                                       (let ((p_0
                                                                              (unwrap
                                                                               v_2)))
                                                                         (if (pair?
                                                                              p_0)
                                                                           (let ((a_1
                                                                                  (cdr
                                                                                   p_0)))
                                                                             (wrap-list?
                                                                              a_1))
                                                                           #f))))
                                                                  (values
                                                                   result_1))))
                                                           (if (if (not
                                                                    (let ((x_0
                                                                           (list
                                                                            v_2)))
                                                                      (not
                                                                       result_1)))
                                                                 #t
                                                                 #f)
                                                             (for-loop_0
                                                              result_1
                                                              rest_0)
                                                             result_1)))))
                                                   result_0))))))
                                          (for-loop_0 #t a_0)))
                                       #f))
                                   #f)
                               (call-with-values
                                (lambda ()
                                  (let ((d_0 (cdr (unwrap v_0))))
                                    (call-with-values
                                     (lambda ()
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (formalss_0 bodys_0 lst_0)
                                               (begin
                                                 (if (not
                                                      (null? (unwrap lst_0)))
                                                   (let ((v_1
                                                          (if (pair?
                                                               (unwrap lst_0))
                                                            (wrap-car lst_0)
                                                            lst_0)))
                                                     (let ((rest_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-cdr lst_0)
                                                              null)))
                                                       (let ((v_2 v_1))
                                                         (call-with-values
                                                          (lambda ()
                                                            (call-with-values
                                                             (lambda ()
                                                               (call-with-values
                                                                (lambda ()
                                                                  (let ((p_0
                                                                         (unwrap
                                                                          v_2)))
                                                                    (let ((formalss_1
                                                                           (let ((a_0
                                                                                  (car
                                                                                   p_0)))
                                                                             a_0)))
                                                                      (let ((bodys_1
                                                                             (let ((d_1
                                                                                    (cdr
                                                                                     p_0)))
                                                                               (unwrap-list
                                                                                d_1))))
                                                                        (let ((formalss_2
                                                                               formalss_1))
                                                                          (values
                                                                           formalss_2
                                                                           bodys_1))))))
                                                                (case-lambda
                                                                 ((formalss76_0
                                                                   bodys77_0)
                                                                  (values
                                                                   (cons
                                                                    formalss76_0
                                                                    formalss_0)
                                                                   (cons
                                                                    bodys77_0
                                                                    bodys_0)))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   2
                                                                   args)))))
                                                             (case-lambda
                                                              ((formalss_1
                                                                bodys_1)
                                                               (values
                                                                formalss_1
                                                                bodys_1))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                2
                                                                args)))))
                                                          (case-lambda
                                                           ((formalss_1
                                                             bodys_1)
                                                            (for-loop_0
                                                             formalss_1
                                                             bodys_1
                                                             rest_0))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             2
                                                             args)))))))
                                                   (values
                                                    formalss_0
                                                    bodys_0)))))))
                                          (for-loop_0 null null d_0))))
                                     (case-lambda
                                      ((formalss_0 bodys_0)
                                       (let ((app_0 (reverse$1 formalss_0)))
                                         (values app_0 (reverse$1 bodys_0))))
                                      (args
                                       (raise-binding-result-arity-error
                                        2
                                        args))))))
                                (case-lambda
                                 ((formalss_0 bodys_0)
                                  (infer-procedure-name
                                   v_0
                                   (list*
                                    'case-lambda
                                    (reverse$1
                                     (begin
                                       (letrec*
                                        ((for-loop_0
                                          (|#%name|
                                           for-loop
                                           (lambda (fold-var_0 lst_0 lst_1)
                                             (begin
                                               (if (if (pair? lst_0)
                                                     (pair? lst_1)
                                                     #f)
                                                 (let ((formals_0
                                                        (unsafe-car lst_0)))
                                                   (let ((rest_0
                                                          (unsafe-cdr lst_0)))
                                                     (let ((body_0
                                                            (unsafe-car
                                                             lst_1)))
                                                       (let ((rest_1
                                                              (unsafe-cdr
                                                               lst_1)))
                                                         (let ((fold-var_1
                                                                (let ((fold-var_1
                                                                       (cons
                                                                        (list*
                                                                         formals_0
                                                                         (schemify-body_0
                                                                          add-import!_0
                                                                          allow-inline?_0
                                                                          allow-set!-undefined?_0
                                                                          explicit-unnamed?_0
                                                                          exports_0
                                                                          for-cify?_0
                                                                          for-interp?_0
                                                                          imports_0
                                                                          inline-fuel_0
                                                                          knowns_0
                                                                          mutated_0
                                                                          no-prompt?_0
                                                                          prim-knowns_0
                                                                          primitives_0
                                                                          simples_0
                                                                          unsafe-mode?_0
                                                                          body_0
                                                                          'tail))
                                                                        fold-var_0)))
                                                                  (values
                                                                   fold-var_1))))
                                                           (for-loop_0
                                                            fold-var_1
                                                            rest_0
                                                            rest_1))))))
                                                 fold-var_0))))))
                                        (for-loop_0
                                         null
                                         formalss_0
                                         bodys_0)))))
                                   explicit-unnamed?_0))
                                 (args
                                  (raise-binding-result-arity-error 2 args))))
                               (if (if (if (eq? 'define-values hd_0)
                                         (let ((a_0 (cdr (unwrap v_0))))
                                           (let ((p_0 (unwrap a_0)))
                                             (if (pair? p_0)
                                               (if (let ((a_1 (car p_0)))
                                                     (let ((p_1 (unwrap a_1)))
                                                       (if (pair? p_1)
                                                         (let ((a_2 (cdr p_1)))
                                                           (let ((p_2
                                                                  (unwrap
                                                                   a_2)))
                                                             (if (pair? p_2)
                                                               (let ((a_3
                                                                      (cdr
                                                                       p_2)))
                                                                 (let ((p_3
                                                                        (unwrap
                                                                         a_3)))
                                                                   (if (pair?
                                                                        p_3)
                                                                     (let ((a_4
                                                                            (cdr
                                                                             p_3)))
                                                                       (wrap-list?
                                                                        a_4))
                                                                     #f)))
                                                               #f)))
                                                         #f)))
                                                 (let ((a_1 (cdr p_0)))
                                                   (let ((p_1 (unwrap a_1)))
                                                     (if (pair? p_1)
                                                       (if (let ((a_2
                                                                  (car p_1)))
                                                             (let ((p_2
                                                                    (unwrap
                                                                     a_2)))
                                                               (if (pair? p_2)
                                                                 (if (let ((a_3
                                                                            (car
                                                                             p_2)))
                                                                       (let ((app_0
                                                                              (unwrap
                                                                               'let-values)))
                                                                         (eq?
                                                                          app_0
                                                                          (unwrap
                                                                           a_3))))
                                                                   (let ((a_3
                                                                          (cdr
                                                                           p_2)))
                                                                     (let ((p_3
                                                                            (unwrap
                                                                             a_3)))
                                                                       (if (pair?
                                                                            p_3)
                                                                         (if (let ((a_4
                                                                                    (car
                                                                                     p_3)))
                                                                               (let ((p_4
                                                                                      (unwrap
                                                                                       a_4)))
                                                                                 (if (pair?
                                                                                      p_4)
                                                                                   (if (let ((a_5
                                                                                              (car
                                                                                               p_4)))
                                                                                         (let ((p_5
                                                                                                (unwrap
                                                                                                 a_5)))
                                                                                           (if (pair?
                                                                                                p_5)
                                                                                             (if (let ((a_6
                                                                                                        (car
                                                                                                         p_5)))
                                                                                                   (let ((p_6
                                                                                                          (unwrap
                                                                                                           a_6)))
                                                                                                     (if (pair?
                                                                                                          p_6)
                                                                                                       (let ((a_7
                                                                                                              (cdr
                                                                                                               p_6)))
                                                                                                         (let ((p_7
                                                                                                                (unwrap
                                                                                                                 a_7)))
                                                                                                           (if (pair?
                                                                                                                p_7)
                                                                                                             (let ((a_8
                                                                                                                    (cdr
                                                                                                                     p_7)))
                                                                                                               (let ((p_8
                                                                                                                      (unwrap
                                                                                                                       a_8)))
                                                                                                                 (if (pair?
                                                                                                                      p_8)
                                                                                                                   (let ((a_9
                                                                                                                          (cdr
                                                                                                                           p_8)))
                                                                                                                     (let ((p_9
                                                                                                                            (unwrap
                                                                                                                             a_9)))
                                                                                                                       (if (pair?
                                                                                                                            p_9)
                                                                                                                         (let ((a_10
                                                                                                                                (cdr
                                                                                                                                 p_9)))
                                                                                                                           (let ((p_10
                                                                                                                                  (unwrap
                                                                                                                                   a_10)))
                                                                                                                             (if (pair?
                                                                                                                                  p_10)
                                                                                                                               (let ((a_11
                                                                                                                                      (cdr
                                                                                                                                       p_10)))
                                                                                                                                 (let ((app_0
                                                                                                                                        (unwrap
                                                                                                                                         '())))
                                                                                                                                   (eq?
                                                                                                                                    app_0
                                                                                                                                    (unwrap
                                                                                                                                     a_11))))
                                                                                                                               #f)))
                                                                                                                         #f)))
                                                                                                                   #f)))
                                                                                                             #f)))
                                                                                                       #f)))
                                                                                               (let ((a_6
                                                                                                      (cdr
                                                                                                       p_5)))
                                                                                                 (let ((p_6
                                                                                                        (unwrap
                                                                                                         a_6)))
                                                                                                   (if (pair?
                                                                                                        p_6)
                                                                                                     (let ((a_7
                                                                                                            (cdr
                                                                                                             p_6)))
                                                                                                       (let ((app_0
                                                                                                              (unwrap
                                                                                                               '())))
                                                                                                         (eq?
                                                                                                          app_0
                                                                                                          (unwrap
                                                                                                           a_7))))
                                                                                                     #f)))
                                                                                               #f)
                                                                                             #f)))
                                                                                     (let ((a_5
                                                                                            (cdr
                                                                                             p_4)))
                                                                                       (let ((app_0
                                                                                              (unwrap
                                                                                               '())))
                                                                                         (eq?
                                                                                          app_0
                                                                                          (unwrap
                                                                                           a_5))))
                                                                                     #f)
                                                                                   #f)))
                                                                           (let ((a_4
                                                                                  (cdr
                                                                                   p_3)))
                                                                             (let ((p_4
                                                                                    (unwrap
                                                                                     a_4)))
                                                                               (if (pair?
                                                                                    p_4)
                                                                                 (if (let ((a_5
                                                                                            (car
                                                                                             p_4)))
                                                                                       (let ((p_5
                                                                                              (unwrap
                                                                                               a_5)))
                                                                                         (if (pair?
                                                                                              p_5)
                                                                                           (if (let ((a_6
                                                                                                      (car
                                                                                                       p_5)))
                                                                                                 (let ((app_0
                                                                                                        (unwrap
                                                                                                         'values)))
                                                                                                   (eq?
                                                                                                    app_0
                                                                                                    (unwrap
                                                                                                     a_6))))
                                                                                             (let ((a_6
                                                                                                    (cdr
                                                                                                     p_5)))
                                                                                               (let ((p_6
                                                                                                      (unwrap
                                                                                                       a_6)))
                                                                                                 (if (pair?
                                                                                                      p_6)
                                                                                                   (let ((a_7
                                                                                                          (cdr
                                                                                                           p_6)))
                                                                                                     (let ((p_7
                                                                                                            (unwrap
                                                                                                             a_7)))
                                                                                                       (if (pair?
                                                                                                            p_7)
                                                                                                         (let ((a_8
                                                                                                                (cdr
                                                                                                                 p_7)))
                                                                                                           (let ((p_8
                                                                                                                  (unwrap
                                                                                                                   a_8)))
                                                                                                             (if (pair?
                                                                                                                  p_8)
                                                                                                               (let ((a_9
                                                                                                                      (cdr
                                                                                                                       p_8)))
                                                                                                                 (wrap-list?
                                                                                                                  a_9))
                                                                                                               #f)))
                                                                                                         #f)))
                                                                                                   #f)))
                                                                                             #f)
                                                                                           #f)))
                                                                                   (let ((a_5
                                                                                          (cdr
                                                                                           p_4)))
                                                                                     (let ((app_0
                                                                                            (unwrap
                                                                                             '())))
                                                                                       (eq?
                                                                                        app_0
                                                                                        (unwrap
                                                                                         a_5))))
                                                                                   #f)
                                                                                 #f)))
                                                                           #f)
                                                                         #f)))
                                                                   #f)
                                                                 #f)))
                                                         (let ((a_2 (cdr p_1)))
                                                           (let ((app_0
                                                                  (unwrap
                                                                   '())))
                                                             (eq?
                                                              app_0
                                                              (unwrap a_2))))
                                                         #f)
                                                       #f)))
                                                 #f)
                                               #f)))
                                         #f)
                                     (not
                                      (if for-interp?_0
                                        for-interp?_0
                                        for-cify?_0))
                                     #f)
                                 (call-with-values
                                  (lambda ()
                                    (let ((d_0 (cdr (unwrap v_0))))
                                      (let ((p_0 (unwrap d_0)))
                                        (call-with-values
                                         (lambda ()
                                           (let ((a_0 (car p_0)))
                                             (let ((p_1 (unwrap a_0)))
                                               (let ((struct:s_0
                                                      (let ((a_1 (car p_1)))
                                                        a_1)))
                                                 (call-with-values
                                                  (lambda ()
                                                    (let ((d_1 (cdr p_1)))
                                                      (let ((p_2 (unwrap d_1)))
                                                        (let ((make-s_0
                                                               (let ((a_1
                                                                      (car
                                                                       p_2)))
                                                                 a_1)))
                                                          (call-with-values
                                                           (lambda ()
                                                             (let ((d_2
                                                                    (cdr p_2)))
                                                               (let ((p_3
                                                                      (unwrap
                                                                       d_2)))
                                                                 (let ((s?_0
                                                                        (let ((a_1
                                                                               (car
                                                                                p_3)))
                                                                          a_1)))
                                                                   (let ((acc/muts_0
                                                                          (let ((d_3
                                                                                 (cdr
                                                                                  p_3)))
                                                                            (unwrap-list
                                                                             d_3))))
                                                                     (let ((s?_1
                                                                            s?_0))
                                                                       (values
                                                                        s?_1
                                                                        acc/muts_0)))))))
                                                           (case-lambda
                                                            ((s?_0 acc/muts_0)
                                                             (let ((make-s_1
                                                                    make-s_0))
                                                               (values
                                                                make-s_1
                                                                s?_0
                                                                acc/muts_0)))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              2
                                                              args))))))))
                                                  (case-lambda
                                                   ((make-s_0 s?_0 acc/muts_0)
                                                    (let ((struct:s_1
                                                           struct:s_0))
                                                      (values
                                                       struct:s_1
                                                       make-s_0
                                                       s?_0
                                                       acc/muts_0)))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     3
                                                     args))))))))
                                         (case-lambda
                                          ((struct:s_0
                                            make-s_0
                                            s?_0
                                            acc/muts_0)
                                           (call-with-values
                                            (lambda ()
                                              (let ((d_1 (cdr p_0)))
                                                (let ((a_0 (car (unwrap d_1))))
                                                  (let ((d_2
                                                         (cdr (unwrap a_0))))
                                                    (let ((p_1 (unwrap d_2)))
                                                      (call-with-values
                                                       (lambda ()
                                                         (let ((a_1 (car p_1)))
                                                           (let ((a_2
                                                                  (car
                                                                   (unwrap
                                                                    a_1))))
                                                             (let ((p_2
                                                                    (unwrap
                                                                     a_2)))
                                                               (call-with-values
                                                                (lambda ()
                                                                  (let ((a_3
                                                                         (car
                                                                          p_2)))
                                                                    (let ((p_3
                                                                           (unwrap
                                                                            a_3)))
                                                                      (let ((struct:_0
                                                                             (let ((a_4
                                                                                    (car
                                                                                     p_3)))
                                                                               a_4)))
                                                                        (call-with-values
                                                                         (lambda ()
                                                                           (let ((d_3
                                                                                  (cdr
                                                                                   p_3)))
                                                                             (let ((p_4
                                                                                    (unwrap
                                                                                     d_3)))
                                                                               (let ((make_0
                                                                                      (let ((a_4
                                                                                             (car
                                                                                              p_4)))
                                                                                        a_4)))
                                                                                 (call-with-values
                                                                                  (lambda ()
                                                                                    (let ((d_4
                                                                                           (cdr
                                                                                            p_4)))
                                                                                      (let ((p_5
                                                                                             (unwrap
                                                                                              d_4)))
                                                                                        (let ((?1_0
                                                                                               (let ((a_4
                                                                                                      (car
                                                                                                       p_5)))
                                                                                                 a_4)))
                                                                                          (call-with-values
                                                                                           (lambda ()
                                                                                             (let ((d_5
                                                                                                    (cdr
                                                                                                     p_5)))
                                                                                               (let ((p_6
                                                                                                      (unwrap
                                                                                                       d_5)))
                                                                                                 (let ((-ref_0
                                                                                                        (let ((a_4
                                                                                                               (car
                                                                                                                p_6)))
                                                                                                          a_4)))
                                                                                                   (let ((-set!_0
                                                                                                          (let ((d_6
                                                                                                                 (cdr
                                                                                                                  p_6)))
                                                                                                            (let ((a_4
                                                                                                                   (car
                                                                                                                    (unwrap
                                                                                                                     d_6))))
                                                                                                              a_4))))
                                                                                                     (let ((-ref_1
                                                                                                            -ref_0))
                                                                                                       (values
                                                                                                        -ref_1
                                                                                                        -set!_0)))))))
                                                                                           (case-lambda
                                                                                            ((-ref_0
                                                                                              -set!_0)
                                                                                             (let ((?1_1
                                                                                                    ?1_0))
                                                                                               (values
                                                                                                ?1_1
                                                                                                -ref_0
                                                                                                -set!_0)))
                                                                                            (args
                                                                                             (raise-binding-result-arity-error
                                                                                              2
                                                                                              args))))))))
                                                                                  (case-lambda
                                                                                   ((?1_0
                                                                                     -ref_0
                                                                                     -set!_0)
                                                                                    (let ((make_1
                                                                                           make_0))
                                                                                      (values
                                                                                       make_1
                                                                                       ?1_0
                                                                                       -ref_0
                                                                                       -set!_0)))
                                                                                   (args
                                                                                    (raise-binding-result-arity-error
                                                                                     3
                                                                                     args))))))))
                                                                         (case-lambda
                                                                          ((make_0
                                                                            ?1_0
                                                                            -ref_0
                                                                            -set!_0)
                                                                           (let ((struct:_1
                                                                                  struct:_0))
                                                                             (values
                                                                              struct:_1
                                                                              make_0
                                                                              ?1_0
                                                                              -ref_0
                                                                              -set!_0)))
                                                                          (args
                                                                           (raise-binding-result-arity-error
                                                                            4
                                                                            args))))))))
                                                                (case-lambda
                                                                 ((struct:_0
                                                                   make_0
                                                                   ?1_0
                                                                   -ref_0
                                                                   -set!_0)
                                                                  (let ((mk_0
                                                                         (let ((d_3
                                                                                (cdr
                                                                                 p_2)))
                                                                           (let ((a_3
                                                                                  (car
                                                                                   (unwrap
                                                                                    d_3))))
                                                                             a_3))))
                                                                    (let ((struct:_1
                                                                           struct:_0)
                                                                          (make_1
                                                                           make_0)
                                                                          (?1_1
                                                                           ?1_0)
                                                                          (-ref_1
                                                                           -ref_0)
                                                                          (-set!_1
                                                                           -set!_0))
                                                                      (values
                                                                       struct:_1
                                                                       make_1
                                                                       ?1_1
                                                                       -ref_1
                                                                       -set!_1
                                                                       mk_0))))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   5
                                                                   args))))))))
                                                       (case-lambda
                                                        ((struct:_0
                                                          make_0
                                                          ?1_0
                                                          -ref_0
                                                          -set!_0
                                                          mk_0)
                                                         (call-with-values
                                                          (lambda ()
                                                            (let ((d_3
                                                                   (cdr p_1)))
                                                              (let ((a_1
                                                                     (car
                                                                      (unwrap
                                                                       d_3))))
                                                                (let ((d_4
                                                                       (cdr
                                                                        (unwrap
                                                                         a_1))))
                                                                  (let ((p_2
                                                                         (unwrap
                                                                          d_4)))
                                                                    (let ((struct:2_0
                                                                           (let ((a_2
                                                                                  (car
                                                                                   p_2)))
                                                                             a_2)))
                                                                      (call-with-values
                                                                       (lambda ()
                                                                         (let ((d_5
                                                                                (cdr
                                                                                 p_2)))
                                                                           (let ((p_3
                                                                                  (unwrap
                                                                                   d_5)))
                                                                             (let ((make2_0
                                                                                    (let ((a_2
                                                                                           (car
                                                                                            p_3)))
                                                                                      a_2)))
                                                                               (call-with-values
                                                                                (lambda ()
                                                                                  (let ((d_6
                                                                                         (cdr
                                                                                          p_3)))
                                                                                    (let ((p_4
                                                                                           (unwrap
                                                                                            d_6)))
                                                                                      (let ((?2_0
                                                                                             (let ((a_2
                                                                                                    (car
                                                                                                     p_4)))
                                                                                               a_2)))
                                                                                        (let ((make-acc/muts_0
                                                                                               (let ((d_7
                                                                                                      (cdr
                                                                                                       p_4)))
                                                                                                 (unwrap-list
                                                                                                  d_7))))
                                                                                          (let ((?2_1
                                                                                                 ?2_0))
                                                                                            (values
                                                                                             ?2_1
                                                                                             make-acc/muts_0)))))))
                                                                                (case-lambda
                                                                                 ((?2_0
                                                                                   make-acc/muts_0)
                                                                                  (let ((make2_1
                                                                                         make2_0))
                                                                                    (values
                                                                                     make2_1
                                                                                     ?2_0
                                                                                     make-acc/muts_0)))
                                                                                 (args
                                                                                  (raise-binding-result-arity-error
                                                                                   2
                                                                                   args))))))))
                                                                       (case-lambda
                                                                        ((make2_0
                                                                          ?2_0
                                                                          make-acc/muts_0)
                                                                         (let ((struct:2_1
                                                                                struct:2_0))
                                                                           (values
                                                                            struct:2_1
                                                                            make2_0
                                                                            ?2_0
                                                                            make-acc/muts_0)))
                                                                        (args
                                                                         (raise-binding-result-arity-error
                                                                          3
                                                                          args))))))))))
                                                          (case-lambda
                                                           ((struct:2_0
                                                             make2_0
                                                             ?2_0
                                                             make-acc/muts_0)
                                                            (let ((struct:_1
                                                                   struct:_0)
                                                                  (make_1
                                                                   make_0)
                                                                  (?1_1 ?1_0)
                                                                  (-ref_1
                                                                   -ref_0)
                                                                  (-set!_1
                                                                   -set!_0)
                                                                  (mk_1 mk_0))
                                                              (values
                                                               struct:_1
                                                               make_1
                                                               ?1_1
                                                               -ref_1
                                                               -set!_1
                                                               mk_1
                                                               struct:2_0
                                                               make2_0
                                                               ?2_0
                                                               make-acc/muts_0)))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             4
                                                             args)))))
                                                        (args
                                                         (raise-binding-result-arity-error
                                                          6
                                                          args)))))))))
                                            (case-lambda
                                             ((struct:_0
                                               make_0
                                               ?1_0
                                               -ref_0
                                               -set!_0
                                               mk_0
                                               struct:2_0
                                               make2_0
                                               ?2_0
                                               make-acc/muts_0)
                                              (let ((struct:s_1 struct:s_0)
                                                    (make-s_1 make-s_0)
                                                    (s?_1 s?_0)
                                                    (acc/muts_1 acc/muts_0))
                                                (values
                                                 struct:s_1
                                                 make-s_1
                                                 s?_1
                                                 acc/muts_1
                                                 struct:_0
                                                 make_0
                                                 ?1_0
                                                 -ref_0
                                                 -set!_0
                                                 mk_0
                                                 struct:2_0
                                                 make2_0
                                                 ?2_0
                                                 make-acc/muts_0)))
                                             (args
                                              (raise-binding-result-arity-error
                                               10
                                               args)))))
                                          (args
                                           (raise-binding-result-arity-error
                                            4
                                            args)))))))
                                  (case-lambda
                                   ((struct:s_0
                                     make-s_0
                                     s?_0
                                     acc/muts_0
                                     struct:_0
                                     make_0
                                     ?1_0
                                     -ref_0
                                     -set!_0
                                     mk_0
                                     struct:2_0
                                     make2_0
                                     ?2_0
                                     make-acc/muts_0)
                                    (let ((new-seq_0
                                           (struct-convert
                                            v_0
                                            prim-knowns_0
                                            knowns_0
                                            imports_0
                                            mutated_0
                                            (lambda (v_1 knowns_1)
                                              (schemify/knowns_0
                                               add-import!_0
                                               allow-inline?_0
                                               allow-set!-undefined?_0
                                               explicit-unnamed?_0
                                               exports_0
                                               for-cify?_0
                                               for-interp?_0
                                               imports_0
                                               mutated_0
                                               no-prompt?_0
                                               prim-knowns_0
                                               primitives_0
                                               simples_0
                                               unsafe-mode?_0
                                               knowns_1
                                               inline-fuel_0
                                               'fresh
                                               v_1))
                                            no-prompt?_0)))
                                      (if new-seq_0
                                        new-seq_0
                                        (if (let ((p_0 (unwrap v_0)))
                                              (if (pair? p_0)
                                                (let ((a_0 (cdr p_0)))
                                                  (let ((p_1 (unwrap a_0)))
                                                    (if (pair? p_1)
                                                      (let ((a_1 (cdr p_1)))
                                                        (let ((p_2
                                                               (unwrap a_1)))
                                                          (if (pair? p_2)
                                                            (let ((a_2
                                                                   (cdr p_2)))
                                                              (let ((app_0
                                                                     (unwrap
                                                                      '())))
                                                                (eq?
                                                                 app_0
                                                                 (unwrap
                                                                  a_2))))
                                                            #f)))
                                                      #f)))
                                                #f))
                                          (call-with-values
                                           (lambda ()
                                             (let ((d_0 (cdr (unwrap v_0))))
                                               (let ((p_0 (unwrap d_0)))
                                                 (let ((ids_0
                                                        (let ((a_0 (car p_0)))
                                                          a_0)))
                                                   (let ((rhs_0
                                                          (let ((d_1
                                                                 (cdr p_0)))
                                                            (let ((a_0
                                                                   (car
                                                                    (unwrap
                                                                     d_1))))
                                                              a_0))))
                                                     (let ((ids_1 ids_0))
                                                       (values
                                                        ids_1
                                                        rhs_0)))))))
                                           (case-lambda
                                            ((ids_0 rhs_0)
                                             (list
                                              'define-values
                                              ids_0
                                              (schemify_0
                                               add-import!_0
                                               allow-inline?_0
                                               allow-set!-undefined?_0
                                               explicit-unnamed?_0
                                               exports_0
                                               for-cify?_0
                                               for-interp?_0
                                               imports_0
                                               inline-fuel_0
                                               knowns_0
                                               mutated_0
                                               no-prompt?_0
                                               prim-knowns_0
                                               primitives_0
                                               simples_0
                                               unsafe-mode?_0
                                               rhs_0
                                               'fresh)))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args))))
                                          (error 'match "failed ~e" v_0)))))
                                   (args
                                    (raise-binding-result-arity-error
                                     14
                                     args))))
                                 (if (if (eq? 'define-values hd_0)
                                       (let ((a_0 (cdr (unwrap v_0))))
                                         (let ((p_0 (unwrap a_0)))
                                           (if (pair? p_0)
                                             (if (let ((a_1 (car p_0)))
                                                   (let ((p_1 (unwrap a_1)))
                                                     (if (pair? p_1)
                                                       (let ((a_2 (cdr p_1)))
                                                         (let ((app_0
                                                                (unwrap '())))
                                                           (eq?
                                                            app_0
                                                            (unwrap a_2))))
                                                       #f)))
                                               (let ((a_1 (cdr p_0)))
                                                 (let ((p_1 (unwrap a_1)))
                                                   (if (pair? p_1)
                                                     (let ((a_2 (cdr p_1)))
                                                       (let ((app_0
                                                              (unwrap '())))
                                                         (eq?
                                                          app_0
                                                          (unwrap a_2))))
                                                     #f)))
                                               #f)
                                             #f)))
                                       #f)
                                   (call-with-values
                                    (lambda ()
                                      (let ((d_0 (cdr (unwrap v_0))))
                                        (let ((p_0 (unwrap d_0)))
                                          (let ((id_0
                                                 (let ((a_0 (car p_0)))
                                                   (let ((a_1
                                                          (car (unwrap a_0))))
                                                     a_1))))
                                            (let ((rhs_0
                                                   (let ((d_1 (cdr p_0)))
                                                     (let ((a_0
                                                            (car
                                                             (unwrap d_1))))
                                                       a_0))))
                                              (let ((id_1 id_0))
                                                (values id_1 rhs_0)))))))
                                    (case-lambda
                                     ((id_0 rhs_0)
                                      (list
                                       'define
                                       id_0
                                       (schemify_0
                                        add-import!_0
                                        allow-inline?_0
                                        allow-set!-undefined?_0
                                        explicit-unnamed?_0
                                        exports_0
                                        for-cify?_0
                                        for-interp?_0
                                        imports_0
                                        inline-fuel_0
                                        knowns_0
                                        mutated_0
                                        no-prompt?_0
                                        prim-knowns_0
                                        primitives_0
                                        simples_0
                                        unsafe-mode?_0
                                        rhs_0
                                        'fresh)))
                                     (args
                                      (raise-binding-result-arity-error
                                       2
                                       args))))
                                   (if (if (eq? 'define-values hd_0)
                                         (let ((a_0 (cdr (unwrap v_0))))
                                           (let ((p_0 (unwrap a_0)))
                                             (if (pair? p_0)
                                               (let ((a_1 (cdr p_0)))
                                                 (let ((p_1 (unwrap a_1)))
                                                   (if (pair? p_1)
                                                     (let ((a_2 (cdr p_1)))
                                                       (let ((app_0
                                                              (unwrap '())))
                                                         (eq?
                                                          app_0
                                                          (unwrap a_2))))
                                                     #f)))
                                               #f)))
                                         #f)
                                     (call-with-values
                                      (lambda ()
                                        (let ((d_0 (cdr (unwrap v_0))))
                                          (let ((p_0 (unwrap d_0)))
                                            (let ((ids_0
                                                   (let ((a_0 (car p_0)))
                                                     a_0)))
                                              (let ((rhs_0
                                                     (let ((d_1 (cdr p_0)))
                                                       (let ((a_0
                                                              (car
                                                               (unwrap d_1))))
                                                         a_0))))
                                                (let ((ids_1 ids_0))
                                                  (values ids_1 rhs_0)))))))
                                      (case-lambda
                                       ((ids_0 rhs_0)
                                        (list
                                         'define-values
                                         ids_0
                                         (schemify_0
                                          add-import!_0
                                          allow-inline?_0
                                          allow-set!-undefined?_0
                                          explicit-unnamed?_0
                                          exports_0
                                          for-cify?_0
                                          for-interp?_0
                                          imports_0
                                          inline-fuel_0
                                          knowns_0
                                          mutated_0
                                          no-prompt?_0
                                          prim-knowns_0
                                          primitives_0
                                          simples_0
                                          unsafe-mode?_0
                                          rhs_0
                                          'fresh)))
                                       (args
                                        (raise-binding-result-arity-error
                                         2
                                         args))))
                                     (if (if (eq? 'quote hd_0)
                                           (let ((a_0 (cdr (unwrap v_0))))
                                             (let ((p_0 (unwrap a_0)))
                                               (if (pair? p_0)
                                                 (let ((a_1 (cdr p_0)))
                                                   (let ((app_0 (unwrap '())))
                                                     (eq? app_0 (unwrap a_1))))
                                                 #f)))
                                           #f)
                                       v_0
                                       (if (if (eq? 'let-values hd_0)
                                             (let ((a_0 (cdr (unwrap v_0))))
                                               (let ((p_0 (unwrap a_0)))
                                                 (if (pair? p_0)
                                                   (if (let ((a_1 (car p_0)))
                                                         (let ((app_0
                                                                (unwrap '())))
                                                           (eq?
                                                            app_0
                                                            (unwrap a_1))))
                                                     (let ((a_1 (cdr p_0)))
                                                       (let ((p_1
                                                              (unwrap a_1)))
                                                         (if (pair? p_1)
                                                           (let ((a_2
                                                                  (cdr p_1)))
                                                             (let ((app_0
                                                                    (unwrap
                                                                     '())))
                                                               (eq?
                                                                app_0
                                                                (unwrap a_2))))
                                                           #f)))
                                                     #f)
                                                   #f)))
                                             #f)
                                         (let ((body_0
                                                (let ((d_0 (cdr (unwrap v_0))))
                                                  (let ((d_1
                                                         (cdr (unwrap d_0))))
                                                    (let ((a_0
                                                           (car (unwrap d_1))))
                                                      a_0)))))
                                           (schemify_0
                                            add-import!_0
                                            allow-inline?_0
                                            allow-set!-undefined?_0
                                            explicit-unnamed?_0
                                            exports_0
                                            for-cify?_0
                                            for-interp?_0
                                            imports_0
                                            inline-fuel_0
                                            knowns_0
                                            mutated_0
                                            no-prompt?_0
                                            prim-knowns_0
                                            primitives_0
                                            simples_0
                                            unsafe-mode?_0
                                            body_0
                                            wcm-state_0))
                                         (if (if (eq? 'let-values hd_0)
                                               (let ((a_0 (cdr (unwrap v_0))))
                                                 (let ((p_0 (unwrap a_0)))
                                                   (if (pair? p_0)
                                                     (if (let ((a_1 (car p_0)))
                                                           (let ((app_0
                                                                  (unwrap
                                                                   '())))
                                                             (eq?
                                                              app_0
                                                              (unwrap a_1))))
                                                       (let ((a_1 (cdr p_0)))
                                                         (wrap-list? a_1))
                                                       #f)
                                                     #f)))
                                               #f)
                                           (let ((bodys_0
                                                  (let ((d_0
                                                         (cdr (unwrap v_0))))
                                                    (let ((d_1
                                                           (cdr (unwrap d_0))))
                                                      (unwrap-list d_1)))))
                                             (schemify_0
                                              add-import!_0
                                              allow-inline?_0
                                              allow-set!-undefined?_0
                                              explicit-unnamed?_0
                                              exports_0
                                              for-cify?_0
                                              for-interp?_0
                                              imports_0
                                              inline-fuel_0
                                              knowns_0
                                              mutated_0
                                              no-prompt?_0
                                              prim-knowns_0
                                              primitives_0
                                              simples_0
                                              unsafe-mode?_0
                                              (list* 'begin bodys_0)
                                              wcm-state_0))
                                           (if (if (eq? 'let-values hd_0)
                                                 (let ((a_0
                                                        (cdr (unwrap v_0))))
                                                   (let ((p_0 (unwrap a_0)))
                                                     (if (pair? p_0)
                                                       (if (let ((a_1
                                                                  (car p_0)))
                                                             (if (wrap-list?
                                                                  a_1)
                                                               (begin
                                                                 (letrec*
                                                                  ((for-loop_0
                                                                    (|#%name|
                                                                     for-loop
                                                                     (lambda (result_0
                                                                              lst_0)
                                                                       (begin
                                                                         (if (not
                                                                              (null?
                                                                               (unwrap
                                                                                lst_0)))
                                                                           (let ((v_1
                                                                                  (if (pair?
                                                                                       (unwrap
                                                                                        lst_0))
                                                                                    (wrap-car
                                                                                     lst_0)
                                                                                    lst_0)))
                                                                             (let ((rest_0
                                                                                    (if (pair?
                                                                                         (unwrap
                                                                                          lst_0))
                                                                                      (wrap-cdr
                                                                                       lst_0)
                                                                                      null)))
                                                                               (let ((v_2
                                                                                      v_1))
                                                                                 (let ((result_1
                                                                                        (let ((result_1
                                                                                               (let ((p_1
                                                                                                      (unwrap
                                                                                                       v_2)))
                                                                                                 (if (pair?
                                                                                                      p_1)
                                                                                                   (if (let ((a_2
                                                                                                              (car
                                                                                                               p_1)))
                                                                                                         (let ((p_2
                                                                                                                (unwrap
                                                                                                                 a_2)))
                                                                                                           (if (pair?
                                                                                                                p_2)
                                                                                                             (let ((a_3
                                                                                                                    (cdr
                                                                                                                     p_2)))
                                                                                                               (let ((app_0
                                                                                                                      (unwrap
                                                                                                                       '())))
                                                                                                                 (eq?
                                                                                                                  app_0
                                                                                                                  (unwrap
                                                                                                                   a_3))))
                                                                                                             #f)))
                                                                                                     (let ((a_2
                                                                                                            (cdr
                                                                                                             p_1)))
                                                                                                       (let ((p_2
                                                                                                              (unwrap
                                                                                                               a_2)))
                                                                                                         (if (pair?
                                                                                                              p_2)
                                                                                                           (let ((a_3
                                                                                                                  (cdr
                                                                                                                   p_2)))
                                                                                                             (let ((app_0
                                                                                                                    (unwrap
                                                                                                                     '())))
                                                                                                               (eq?
                                                                                                                app_0
                                                                                                                (unwrap
                                                                                                                 a_3))))
                                                                                                           #f)))
                                                                                                     #f)
                                                                                                   #f))))
                                                                                          (values
                                                                                           result_1))))
                                                                                   (if (if (not
                                                                                            (let ((x_0
                                                                                                   (list
                                                                                                    v_2)))
                                                                                              (not
                                                                                               result_1)))
                                                                                         #t
                                                                                         #f)
                                                                                     (for-loop_0
                                                                                      result_1
                                                                                      rest_0)
                                                                                     result_1)))))
                                                                           result_0))))))
                                                                  (for-loop_0
                                                                   #t
                                                                   a_1)))
                                                               #f))
                                                         (let ((a_1 (cdr p_0)))
                                                           (wrap-list? a_1))
                                                         #f)
                                                       #f)))
                                                 #f)
                                             (call-with-values
                                              (lambda ()
                                                (let ((d_0 (cdr (unwrap v_0))))
                                                  (let ((p_0 (unwrap d_0)))
                                                    (call-with-values
                                                     (lambda ()
                                                       (let ((a_0 (car p_0)))
                                                         (call-with-values
                                                          (lambda ()
                                                            (begin
                                                              (letrec*
                                                               ((for-loop_0
                                                                 (|#%name|
                                                                  for-loop
                                                                  (lambda (ids_0
                                                                           rhss_0
                                                                           lst_0)
                                                                    (begin
                                                                      (if (not
                                                                           (null?
                                                                            (unwrap
                                                                             lst_0)))
                                                                        (let ((v_1
                                                                               (if (pair?
                                                                                    (unwrap
                                                                                     lst_0))
                                                                                 (wrap-car
                                                                                  lst_0)
                                                                                 lst_0)))
                                                                          (let ((rest_0
                                                                                 (if (pair?
                                                                                      (unwrap
                                                                                       lst_0))
                                                                                   (wrap-cdr
                                                                                    lst_0)
                                                                                   null)))
                                                                            (let ((v_2
                                                                                   v_1))
                                                                              (call-with-values
                                                                               (lambda ()
                                                                                 (call-with-values
                                                                                  (lambda ()
                                                                                    (call-with-values
                                                                                     (lambda ()
                                                                                       (let ((p_1
                                                                                              (unwrap
                                                                                               v_2)))
                                                                                         (let ((ids_1
                                                                                                (let ((a_1
                                                                                                       (car
                                                                                                        p_1)))
                                                                                                  (let ((a_2
                                                                                                         (car
                                                                                                          (unwrap
                                                                                                           a_1))))
                                                                                                    a_2))))
                                                                                           (let ((rhss_1
                                                                                                  (let ((d_1
                                                                                                         (cdr
                                                                                                          p_1)))
                                                                                                    (let ((a_1
                                                                                                           (car
                                                                                                            (unwrap
                                                                                                             d_1))))
                                                                                                      a_1))))
                                                                                             (let ((ids_2
                                                                                                    ids_1))
                                                                                               (values
                                                                                                ids_2
                                                                                                rhss_1))))))
                                                                                     (case-lambda
                                                                                      ((ids78_0
                                                                                        rhss79_0)
                                                                                       (values
                                                                                        (cons
                                                                                         ids78_0
                                                                                         ids_0)
                                                                                        (cons
                                                                                         rhss79_0
                                                                                         rhss_0)))
                                                                                      (args
                                                                                       (raise-binding-result-arity-error
                                                                                        2
                                                                                        args)))))
                                                                                  (case-lambda
                                                                                   ((ids_1
                                                                                     rhss_1)
                                                                                    (values
                                                                                     ids_1
                                                                                     rhss_1))
                                                                                   (args
                                                                                    (raise-binding-result-arity-error
                                                                                     2
                                                                                     args)))))
                                                                               (case-lambda
                                                                                ((ids_1
                                                                                  rhss_1)
                                                                                 (for-loop_0
                                                                                  ids_1
                                                                                  rhss_1
                                                                                  rest_0))
                                                                                (args
                                                                                 (raise-binding-result-arity-error
                                                                                  2
                                                                                  args)))))))
                                                                        (values
                                                                         ids_0
                                                                         rhss_0)))))))
                                                               (for-loop_0
                                                                null
                                                                null
                                                                a_0))))
                                                          (case-lambda
                                                           ((ids_0 rhss_0)
                                                            (let ((app_0
                                                                   (reverse$1
                                                                    ids_0)))
                                                              (values
                                                               app_0
                                                               (reverse$1
                                                                rhss_0))))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             2
                                                             args))))))
                                                     (case-lambda
                                                      ((ids_0 rhss_0)
                                                       (let ((bodys_0
                                                              (let ((d_1
                                                                     (cdr
                                                                      p_0)))
                                                                (unwrap-list
                                                                 d_1))))
                                                         (let ((ids_1 ids_0)
                                                               (rhss_1 rhss_0))
                                                           (values
                                                            ids_1
                                                            rhss_1
                                                            bodys_0))))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args)))))))
                                              (case-lambda
                                               ((ids_0 rhss_0 bodys_0)
                                                (if (if (pair? ids_0)
                                                      (if (null? (cdr ids_0))
                                                        (if (pair? bodys_0)
                                                          (if (null?
                                                               (cdr bodys_0))
                                                            (if (let ((app_0
                                                                       (unwrap
                                                                        (car
                                                                         ids_0))))
                                                                  (eq?
                                                                   app_0
                                                                   (unwrap
                                                                    (car
                                                                     bodys_0))))
                                                              (let ((temp80_0
                                                                     (car
                                                                      rhss_0)))
                                                                (lambda?.1
                                                                 #f
                                                                 temp80_0))
                                                              #f)
                                                            #f)
                                                          #f)
                                                        #f)
                                                      #f)
                                                  (schemify_0
                                                   add-import!_0
                                                   allow-inline?_0
                                                   allow-set!-undefined?_0
                                                   explicit-unnamed?_0
                                                   exports_0
                                                   for-cify?_0
                                                   for-interp?_0
                                                   imports_0
                                                   inline-fuel_0
                                                   knowns_0
                                                   mutated_0
                                                   no-prompt?_0
                                                   prim-knowns_0
                                                   primitives_0
                                                   simples_0
                                                   unsafe-mode?_0
                                                   (car rhss_0)
                                                   wcm-state_0)
                                                  (let ((new-knowns_0
                                                         (begin
                                                           (letrec*
                                                            ((for-loop_0
                                                              (|#%name|
                                                               for-loop
                                                               (lambda (knowns_1
                                                                        lst_0
                                                                        lst_1)
                                                                 (begin
                                                                   (if (if (pair?
                                                                            lst_0)
                                                                         (pair?
                                                                          lst_1)
                                                                         #f)
                                                                     (let ((id_0
                                                                            (unsafe-car
                                                                             lst_0)))
                                                                       (let ((rest_0
                                                                              (unsafe-cdr
                                                                               lst_0)))
                                                                         (let ((rhs_0
                                                                                (unsafe-car
                                                                                 lst_1)))
                                                                           (let ((rest_1
                                                                                  (unsafe-cdr
                                                                                   lst_1)))
                                                                             (let ((knowns_2
                                                                                    (let ((knowns_2
                                                                                           (let ((k_0
                                                                                                  (infer-known.1
                                                                                                   #f
                                                                                                   #f
                                                                                                   hash2610
                                                                                                   rhs_0
                                                                                                   #f
                                                                                                   id_0
                                                                                                   knowns_1
                                                                                                   prim-knowns_0
                                                                                                   imports_0
                                                                                                   mutated_0
                                                                                                   simples_0
                                                                                                   unsafe-mode?_0)))
                                                                                             (if k_0
                                                                                               (hash-set
                                                                                                knowns_1
                                                                                                (unwrap
                                                                                                 id_0)
                                                                                                k_0)
                                                                                               knowns_1))))
                                                                                      (values
                                                                                       knowns_2))))
                                                                               (for-loop_0
                                                                                knowns_2
                                                                                rest_0
                                                                                rest_1))))))
                                                                     knowns_1))))))
                                                            (for-loop_0
                                                             knowns_0
                                                             ids_0
                                                             rhss_0)))))
                                                    (unnest-let
                                                     (let ((app_0
                                                            (reverse$1
                                                             (begin
                                                               (letrec*
                                                                ((for-loop_0
                                                                  (|#%name|
                                                                   for-loop
                                                                   (lambda (fold-var_0
                                                                            lst_0)
                                                                     (begin
                                                                       (if (pair?
                                                                            lst_0)
                                                                         (let ((id_0
                                                                                (unsafe-car
                                                                                 lst_0)))
                                                                           (let ((rest_0
                                                                                  (unsafe-cdr
                                                                                   lst_0)))
                                                                             (let ((fold-var_1
                                                                                    (if (merely-a-copy?_0
                                                                                         mutated_0
                                                                                         new-knowns_0
                                                                                         id_0)
                                                                                      fold-var_0
                                                                                      (let ((fold-var_1
                                                                                             (cons
                                                                                              id_0
                                                                                              fold-var_0)))
                                                                                        (values
                                                                                         fold-var_1)))))
                                                                               (for-loop_0
                                                                                fold-var_1
                                                                                rest_0))))
                                                                         fold-var_0))))))
                                                                (for-loop_0
                                                                 null
                                                                 ids_0))))))
                                                       (let ((app_1
                                                              (reverse$1
                                                               (begin
                                                                 (letrec*
                                                                  ((for-loop_0
                                                                    (|#%name|
                                                                     for-loop
                                                                     (lambda (fold-var_0
                                                                              lst_0
                                                                              lst_1)
                                                                       (begin
                                                                         (if (if (pair?
                                                                                  lst_0)
                                                                               (pair?
                                                                                lst_1)
                                                                               #f)
                                                                           (let ((id_0
                                                                                  (unsafe-car
                                                                                   lst_0)))
                                                                             (let ((rest_0
                                                                                    (unsafe-cdr
                                                                                     lst_0)))
                                                                               (let ((rhs_0
                                                                                      (unsafe-car
                                                                                       lst_1)))
                                                                                 (let ((rest_1
                                                                                        (unsafe-cdr
                                                                                         lst_1)))
                                                                                   (let ((fold-var_1
                                                                                          (if (merely-a-copy?_0
                                                                                               mutated_0
                                                                                               new-knowns_0
                                                                                               id_0)
                                                                                            fold-var_0
                                                                                            (let ((fold-var_1
                                                                                                   (cons
                                                                                                    (schemify_0
                                                                                                     add-import!_0
                                                                                                     allow-inline?_0
                                                                                                     allow-set!-undefined?_0
                                                                                                     explicit-unnamed?_0
                                                                                                     exports_0
                                                                                                     for-cify?_0
                                                                                                     for-interp?_0
                                                                                                     imports_0
                                                                                                     inline-fuel_0
                                                                                                     knowns_0
                                                                                                     mutated_0
                                                                                                     no-prompt?_0
                                                                                                     prim-knowns_0
                                                                                                     primitives_0
                                                                                                     simples_0
                                                                                                     unsafe-mode?_0
                                                                                                     rhs_0
                                                                                                     'fresh)
                                                                                                    fold-var_0)))
                                                                                              (values
                                                                                               fold-var_1)))))
                                                                                     (for-loop_0
                                                                                      fold-var_1
                                                                                      rest_0
                                                                                      rest_1))))))
                                                                           fold-var_0))))))
                                                                  (for-loop_0
                                                                   null
                                                                   ids_0
                                                                   rhss_0))))))
                                                         (left-to-right/let
                                                          app_0
                                                          app_1
                                                          (reverse$1
                                                           (begin
                                                             (letrec*
                                                              ((for-loop_0
                                                                (|#%name|
                                                                 for-loop
                                                                 (lambda (fold-var_0
                                                                          lst_0)
                                                                   (begin
                                                                     (if (pair?
                                                                          lst_0)
                                                                       (let ((body_0
                                                                              (unsafe-car
                                                                               lst_0)))
                                                                         (let ((rest_0
                                                                                (unsafe-cdr
                                                                                 lst_0)))
                                                                           (let ((fold-var_1
                                                                                  (let ((fold-var_1
                                                                                         (cons
                                                                                          (schemify/knowns_0
                                                                                           add-import!_0
                                                                                           allow-inline?_0
                                                                                           allow-set!-undefined?_0
                                                                                           explicit-unnamed?_0
                                                                                           exports_0
                                                                                           for-cify?_0
                                                                                           for-interp?_0
                                                                                           imports_0
                                                                                           mutated_0
                                                                                           no-prompt?_0
                                                                                           prim-knowns_0
                                                                                           primitives_0
                                                                                           simples_0
                                                                                           unsafe-mode?_0
                                                                                           new-knowns_0
                                                                                           inline-fuel_0
                                                                                           wcm-state_0
                                                                                           body_0)
                                                                                          fold-var_0)))
                                                                                    (values
                                                                                     fold-var_1))))
                                                                             (for-loop_0
                                                                              fold-var_1
                                                                              rest_0))))
                                                                       fold-var_0))))))
                                                              (for-loop_0
                                                               null
                                                               bodys_0))))
                                                          prim-knowns_0
                                                          knowns_0
                                                          imports_0
                                                          mutated_0
                                                          simples_0)))
                                                     prim-knowns_0
                                                     knowns_0
                                                     imports_0
                                                     mutated_0
                                                     simples_0))))
                                               (args
                                                (raise-binding-result-arity-error
                                                 3
                                                 args))))
                                             (if (if (eq? 'let-values hd_0)
                                                   (let ((a_0
                                                          (cdr (unwrap v_0))))
                                                     (let ((p_0 (unwrap a_0)))
                                                       (if (pair? p_0)
                                                         (if (let ((a_1
                                                                    (car p_0)))
                                                               (let ((p_1
                                                                      (unwrap
                                                                       a_1)))
                                                                 (if (pair?
                                                                      p_1)
                                                                   (if (let ((a_2
                                                                              (car
                                                                               p_1)))
                                                                         (let ((p_2
                                                                                (unwrap
                                                                                 a_2)))
                                                                           (if (pair?
                                                                                p_2)
                                                                             (if (let ((a_3
                                                                                        (car
                                                                                         p_2)))
                                                                                   (let ((app_0
                                                                                          (unwrap
                                                                                           '())))
                                                                                     (eq?
                                                                                      app_0
                                                                                      (unwrap
                                                                                       a_3))))
                                                                               (let ((a_3
                                                                                      (cdr
                                                                                       p_2)))
                                                                                 (let ((p_3
                                                                                        (unwrap
                                                                                         a_3)))
                                                                                   (if (pair?
                                                                                        p_3)
                                                                                     (if (let ((a_4
                                                                                                (car
                                                                                                 p_3)))
                                                                                           (let ((p_4
                                                                                                  (unwrap
                                                                                                   a_4)))
                                                                                             (if (pair?
                                                                                                  p_4)
                                                                                               (if (let ((a_5
                                                                                                          (car
                                                                                                           p_4)))
                                                                                                     (let ((app_0
                                                                                                            (unwrap
                                                                                                             'begin)))
                                                                                                       (eq?
                                                                                                        app_0
                                                                                                        (unwrap
                                                                                                         a_5))))
                                                                                                 (let ((a_5
                                                                                                        (cdr
                                                                                                         p_4)))
                                                                                                   (let ((p_5
                                                                                                          (unwrap
                                                                                                           a_5)))
                                                                                                     (if (pair?
                                                                                                          p_5)
                                                                                                       (let ((a_6
                                                                                                              (cdr
                                                                                                               p_5)))
                                                                                                         (let ((p_6
                                                                                                                (unwrap
                                                                                                                 a_6)))
                                                                                                           (if (pair?
                                                                                                                p_6)
                                                                                                             (if (let ((a_7
                                                                                                                        (car
                                                                                                                         p_6)))
                                                                                                                   (let ((app_0
                                                                                                                          (unwrap
                                                                                                                           '...)))
                                                                                                                     (eq?
                                                                                                                      app_0
                                                                                                                      (unwrap
                                                                                                                       a_7))))
                                                                                                               (let ((a_7
                                                                                                                      (cdr
                                                                                                                       p_6)))
                                                                                                                 (let ((p_7
                                                                                                                        (unwrap
                                                                                                                         a_7)))
                                                                                                                   (if (pair?
                                                                                                                        p_7)
                                                                                                                     (if (let ((a_8
                                                                                                                                (car
                                                                                                                                 p_7)))
                                                                                                                           (let ((p_8
                                                                                                                                  (unwrap
                                                                                                                                   a_8)))
                                                                                                                             (if (pair?
                                                                                                                                  p_8)
                                                                                                                               (if (let ((a_9
                                                                                                                                          (car
                                                                                                                                           p_8)))
                                                                                                                                     (let ((app_0
                                                                                                                                            (unwrap
                                                                                                                                             'values)))
                                                                                                                                       (eq?
                                                                                                                                        app_0
                                                                                                                                        (unwrap
                                                                                                                                         a_9))))
                                                                                                                                 (let ((a_9
                                                                                                                                        (cdr
                                                                                                                                         p_8)))
                                                                                                                                   (let ((app_0
                                                                                                                                          (unwrap
                                                                                                                                           '())))
                                                                                                                                     (eq?
                                                                                                                                      app_0
                                                                                                                                      (unwrap
                                                                                                                                       a_9))))
                                                                                                                                 #f)
                                                                                                                               #f)))
                                                                                                                       (let ((a_8
                                                                                                                              (cdr
                                                                                                                               p_7)))
                                                                                                                         (let ((app_0
                                                                                                                                (unwrap
                                                                                                                                 '())))
                                                                                                                           (eq?
                                                                                                                            app_0
                                                                                                                            (unwrap
                                                                                                                             a_8))))
                                                                                                                       #f)
                                                                                                                     #f)))
                                                                                                               #f)
                                                                                                             #f)))
                                                                                                       #f)))
                                                                                                 #f)
                                                                                               #f)))
                                                                                       (let ((a_4
                                                                                              (cdr
                                                                                               p_3)))
                                                                                         (let ((app_0
                                                                                                (unwrap
                                                                                                 '())))
                                                                                           (eq?
                                                                                            app_0
                                                                                            (unwrap
                                                                                             a_4))))
                                                                                       #f)
                                                                                     #f)))
                                                                               #f)
                                                                             #f)))
                                                                     (let ((a_2
                                                                            (cdr
                                                                             p_1)))
                                                                       (let ((app_0
                                                                              (unwrap
                                                                               '())))
                                                                         (eq?
                                                                          app_0
                                                                          (unwrap
                                                                           a_2))))
                                                                     #f)
                                                                   #f)))
                                                           (let ((a_1
                                                                  (cdr p_0)))
                                                             (wrap-list? a_1))
                                                           #f)
                                                         #f)))
                                                   #f)
                                               (call-with-values
                                                (lambda ()
                                                  (let ((d_0
                                                         (cdr (unwrap v_0))))
                                                    (let ((p_0 (unwrap d_0)))
                                                      (let ((rhss_0
                                                             (let ((a_0
                                                                    (car p_0)))
                                                               (let ((a_1
                                                                      (car
                                                                       (unwrap
                                                                        a_0))))
                                                                 (let ((d_1
                                                                        (cdr
                                                                         (unwrap
                                                                          a_1))))
                                                                   (let ((a_2
                                                                          (car
                                                                           (unwrap
                                                                            d_1))))
                                                                     (let ((d_2
                                                                            (cdr
                                                                             (unwrap
                                                                              a_2))))
                                                                       (let ((a_3
                                                                              (car
                                                                               (unwrap
                                                                                d_2))))
                                                                         a_3))))))))
                                                        (let ((bodys_0
                                                               (let ((d_1
                                                                      (cdr
                                                                       p_0)))
                                                                 (unwrap-list
                                                                  d_1))))
                                                          (let ((rhss_1
                                                                 rhss_0))
                                                            (values
                                                             rhss_1
                                                             bodys_0)))))))
                                                (case-lambda
                                                 ((rhss_0 bodys_0)
                                                  (list*
                                                   'begin
                                                   (let ((app_0
                                                          (schemify-body_0
                                                           add-import!_0
                                                           allow-inline?_0
                                                           allow-set!-undefined?_0
                                                           explicit-unnamed?_0
                                                           exports_0
                                                           for-cify?_0
                                                           for-interp?_0
                                                           imports_0
                                                           inline-fuel_0
                                                           knowns_0
                                                           mutated_0
                                                           no-prompt?_0
                                                           prim-knowns_0
                                                           primitives_0
                                                           simples_0
                                                           unsafe-mode?_0
                                                           rhss_0
                                                           'fresh)))
                                                     (qq-append
                                                      app_0
                                                      (schemify-body_0
                                                       add-import!_0
                                                       allow-inline?_0
                                                       allow-set!-undefined?_0
                                                       explicit-unnamed?_0
                                                       exports_0
                                                       for-cify?_0
                                                       for-interp?_0
                                                       imports_0
                                                       inline-fuel_0
                                                       knowns_0
                                                       mutated_0
                                                       no-prompt?_0
                                                       prim-knowns_0
                                                       primitives_0
                                                       simples_0
                                                       unsafe-mode?_0
                                                       bodys_0
                                                       wcm-state_0)))))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   2
                                                   args))))
                                               (if (if (eq? 'let-values hd_0)
                                                     (let ((a_0
                                                            (cdr
                                                             (unwrap v_0))))
                                                       (let ((p_0
                                                              (unwrap a_0)))
                                                         (if (pair? p_0)
                                                           (if (let ((a_1
                                                                      (car
                                                                       p_0)))
                                                                 (if (wrap-list?
                                                                      a_1)
                                                                   (begin
                                                                     (letrec*
                                                                      ((for-loop_0
                                                                        (|#%name|
                                                                         for-loop
                                                                         (lambda (result_0
                                                                                  lst_0)
                                                                           (begin
                                                                             (if (not
                                                                                  (null?
                                                                                   (unwrap
                                                                                    lst_0)))
                                                                               (let ((v_1
                                                                                      (if (pair?
                                                                                           (unwrap
                                                                                            lst_0))
                                                                                        (wrap-car
                                                                                         lst_0)
                                                                                        lst_0)))
                                                                                 (let ((rest_0
                                                                                        (if (pair?
                                                                                             (unwrap
                                                                                              lst_0))
                                                                                          (wrap-cdr
                                                                                           lst_0)
                                                                                          null)))
                                                                                   (let ((v_2
                                                                                          v_1))
                                                                                     (let ((result_1
                                                                                            (let ((result_1
                                                                                                   (let ((p_1
                                                                                                          (unwrap
                                                                                                           v_2)))
                                                                                                     (if (pair?
                                                                                                          p_1)
                                                                                                       (let ((a_2
                                                                                                              (cdr
                                                                                                               p_1)))
                                                                                                         (let ((p_2
                                                                                                                (unwrap
                                                                                                                 a_2)))
                                                                                                           (if (pair?
                                                                                                                p_2)
                                                                                                             (let ((a_3
                                                                                                                    (cdr
                                                                                                                     p_2)))
                                                                                                               (let ((app_0
                                                                                                                      (unwrap
                                                                                                                       '())))
                                                                                                                 (eq?
                                                                                                                  app_0
                                                                                                                  (unwrap
                                                                                                                   a_3))))
                                                                                                             #f)))
                                                                                                       #f))))
                                                                                              (values
                                                                                               result_1))))
                                                                                       (if (if (not
                                                                                                (let ((x_0
                                                                                                       (list
                                                                                                        v_2)))
                                                                                                  (not
                                                                                                   result_1)))
                                                                                             #t
                                                                                             #f)
                                                                                         (for-loop_0
                                                                                          result_1
                                                                                          rest_0)
                                                                                         result_1)))))
                                                                               result_0))))))
                                                                      (for-loop_0
                                                                       #t
                                                                       a_1)))
                                                                   #f))
                                                             (let ((a_1
                                                                    (cdr p_0)))
                                                               (wrap-list?
                                                                a_1))
                                                             #f)
                                                           #f)))
                                                     #f)
                                                 (call-with-values
                                                  (lambda ()
                                                    (let ((d_0
                                                           (cdr (unwrap v_0))))
                                                      (let ((p_0 (unwrap d_0)))
                                                        (call-with-values
                                                         (lambda ()
                                                           (let ((a_0
                                                                  (car p_0)))
                                                             (call-with-values
                                                              (lambda ()
                                                                (begin
                                                                  (letrec*
                                                                   ((for-loop_0
                                                                     (|#%name|
                                                                      for-loop
                                                                      (lambda (idss_0
                                                                               rhss_0
                                                                               lst_0)
                                                                        (begin
                                                                          (if (not
                                                                               (null?
                                                                                (unwrap
                                                                                 lst_0)))
                                                                            (let ((v_1
                                                                                   (if (pair?
                                                                                        (unwrap
                                                                                         lst_0))
                                                                                     (wrap-car
                                                                                      lst_0)
                                                                                     lst_0)))
                                                                              (let ((rest_0
                                                                                     (if (pair?
                                                                                          (unwrap
                                                                                           lst_0))
                                                                                       (wrap-cdr
                                                                                        lst_0)
                                                                                       null)))
                                                                                (let ((v_2
                                                                                       v_1))
                                                                                  (call-with-values
                                                                                   (lambda ()
                                                                                     (call-with-values
                                                                                      (lambda ()
                                                                                        (call-with-values
                                                                                         (lambda ()
                                                                                           (let ((p_1
                                                                                                  (unwrap
                                                                                                   v_2)))
                                                                                             (let ((idss_1
                                                                                                    (let ((a_1
                                                                                                           (car
                                                                                                            p_1)))
                                                                                                      a_1)))
                                                                                               (let ((rhss_1
                                                                                                      (let ((d_1
                                                                                                             (cdr
                                                                                                              p_1)))
                                                                                                        (let ((a_1
                                                                                                               (car
                                                                                                                (unwrap
                                                                                                                 d_1))))
                                                                                                          a_1))))
                                                                                                 (let ((idss_2
                                                                                                        idss_1))
                                                                                                   (values
                                                                                                    idss_2
                                                                                                    rhss_1))))))
                                                                                         (case-lambda
                                                                                          ((idss90_0
                                                                                            rhss91_0)
                                                                                           (values
                                                                                            (cons
                                                                                             idss90_0
                                                                                             idss_0)
                                                                                            (cons
                                                                                             rhss91_0
                                                                                             rhss_0)))
                                                                                          (args
                                                                                           (raise-binding-result-arity-error
                                                                                            2
                                                                                            args)))))
                                                                                      (case-lambda
                                                                                       ((idss_1
                                                                                         rhss_1)
                                                                                        (values
                                                                                         idss_1
                                                                                         rhss_1))
                                                                                       (args
                                                                                        (raise-binding-result-arity-error
                                                                                         2
                                                                                         args)))))
                                                                                   (case-lambda
                                                                                    ((idss_1
                                                                                      rhss_1)
                                                                                     (for-loop_0
                                                                                      idss_1
                                                                                      rhss_1
                                                                                      rest_0))
                                                                                    (args
                                                                                     (raise-binding-result-arity-error
                                                                                      2
                                                                                      args)))))))
                                                                            (values
                                                                             idss_0
                                                                             rhss_0)))))))
                                                                   (for-loop_0
                                                                    null
                                                                    null
                                                                    a_0))))
                                                              (case-lambda
                                                               ((idss_0 rhss_0)
                                                                (let ((app_0
                                                                       (reverse$1
                                                                        idss_0)))
                                                                  (values
                                                                   app_0
                                                                   (reverse$1
                                                                    rhss_0))))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 2
                                                                 args))))))
                                                         (case-lambda
                                                          ((idss_0 rhss_0)
                                                           (let ((bodys_0
                                                                  (let ((d_1
                                                                         (cdr
                                                                          p_0)))
                                                                    (unwrap-list
                                                                     d_1))))
                                                             (let ((idss_1
                                                                    idss_0)
                                                                   (rhss_1
                                                                    rhss_0))
                                                               (values
                                                                idss_1
                                                                rhss_1
                                                                bodys_0))))
                                                          (args
                                                           (raise-binding-result-arity-error
                                                            2
                                                            args)))))))
                                                  (case-lambda
                                                   ((idss_0 rhss_0 bodys_0)
                                                    (let ((or-part_0
                                                           (if (not
                                                                (if for-interp?_0
                                                                  for-interp?_0
                                                                  for-cify?_0))
                                                             (let ((temp98_0
                                                                    (|#%name|
                                                                     temp98
                                                                     (lambda (v_1
                                                                              knowns_1)
                                                                       (begin
                                                                         (schemify/knowns_0
                                                                          add-import!_0
                                                                          allow-inline?_0
                                                                          allow-set!-undefined?_0
                                                                          explicit-unnamed?_0
                                                                          exports_0
                                                                          for-cify?_0
                                                                          for-interp?_0
                                                                          imports_0
                                                                          mutated_0
                                                                          no-prompt?_0
                                                                          prim-knowns_0
                                                                          primitives_0
                                                                          simples_0
                                                                          unsafe-mode?_0
                                                                          knowns_1
                                                                          inline-fuel_0
                                                                          'fresh
                                                                          v_1))))))
                                                               (struct-convert-local.1
                                                                #f
                                                                unsafe-mode?_0
                                                                v_0
                                                                prim-knowns_0
                                                                knowns_0
                                                                imports_0
                                                                mutated_0
                                                                simples_0
                                                                temp98_0))
                                                             #f)))
                                                      (if or-part_0
                                                        or-part_0
                                                        (unnest-let
                                                         (let ((app_0
                                                                (reverse$1
                                                                 (begin
                                                                   (letrec*
                                                                    ((for-loop_0
                                                                      (|#%name|
                                                                       for-loop
                                                                       (lambda (fold-var_0
                                                                                lst_0)
                                                                         (begin
                                                                           (if (pair?
                                                                                lst_0)
                                                                             (let ((rhs_0
                                                                                    (unsafe-car
                                                                                     lst_0)))
                                                                               (let ((rest_0
                                                                                      (unsafe-cdr
                                                                                       lst_0)))
                                                                                 (let ((fold-var_1
                                                                                        (let ((fold-var_1
                                                                                               (cons
                                                                                                (schemify_0
                                                                                                 add-import!_0
                                                                                                 allow-inline?_0
                                                                                                 allow-set!-undefined?_0
                                                                                                 explicit-unnamed?_0
                                                                                                 exports_0
                                                                                                 for-cify?_0
                                                                                                 for-interp?_0
                                                                                                 imports_0
                                                                                                 inline-fuel_0
                                                                                                 knowns_0
                                                                                                 mutated_0
                                                                                                 no-prompt?_0
                                                                                                 prim-knowns_0
                                                                                                 primitives_0
                                                                                                 simples_0
                                                                                                 unsafe-mode?_0
                                                                                                 rhs_0
                                                                                                 'fresh)
                                                                                                fold-var_0)))
                                                                                          (values
                                                                                           fold-var_1))))
                                                                                   (for-loop_0
                                                                                    fold-var_1
                                                                                    rest_0))))
                                                                             fold-var_0))))))
                                                                    (for-loop_0
                                                                     null
                                                                     rhss_0))))))
                                                           (left-to-right/let-values
                                                            idss_0
                                                            app_0
                                                            (schemify-body_0
                                                             add-import!_0
                                                             allow-inline?_0
                                                             allow-set!-undefined?_0
                                                             explicit-unnamed?_0
                                                             exports_0
                                                             for-cify?_0
                                                             for-interp?_0
                                                             imports_0
                                                             inline-fuel_0
                                                             knowns_0
                                                             mutated_0
                                                             no-prompt?_0
                                                             prim-knowns_0
                                                             primitives_0
                                                             simples_0
                                                             unsafe-mode?_0
                                                             bodys_0
                                                             wcm-state_0)
                                                            mutated_0
                                                            for-cify?_0))
                                                         prim-knowns_0
                                                         knowns_0
                                                         imports_0
                                                         mutated_0
                                                         simples_0))))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     3
                                                     args))))
                                                 (if (if (eq?
                                                          'letrec-values
                                                          hd_0)
                                                       (let ((a_0
                                                              (cdr
                                                               (unwrap v_0))))
                                                         (let ((p_0
                                                                (unwrap a_0)))
                                                           (if (pair? p_0)
                                                             (if (let ((a_1
                                                                        (car
                                                                         p_0)))
                                                                   (let ((app_0
                                                                          (unwrap
                                                                           '())))
                                                                     (eq?
                                                                      app_0
                                                                      (unwrap
                                                                       a_1))))
                                                               (let ((a_1
                                                                      (cdr
                                                                       p_0)))
                                                                 (wrap-list?
                                                                  a_1))
                                                               #f)
                                                             #f)))
                                                       #f)
                                                   (let ((bodys_0
                                                          (let ((d_0
                                                                 (cdr
                                                                  (unwrap
                                                                   v_0))))
                                                            (let ((d_1
                                                                   (cdr
                                                                    (unwrap
                                                                     d_0))))
                                                              (unwrap-list
                                                               d_1)))))
                                                     (schemify_0
                                                      add-import!_0
                                                      allow-inline?_0
                                                      allow-set!-undefined?_0
                                                      explicit-unnamed?_0
                                                      exports_0
                                                      for-cify?_0
                                                      for-interp?_0
                                                      imports_0
                                                      inline-fuel_0
                                                      knowns_0
                                                      mutated_0
                                                      no-prompt?_0
                                                      prim-knowns_0
                                                      primitives_0
                                                      simples_0
                                                      unsafe-mode?_0
                                                      (list* 'begin bodys_0)
                                                      wcm-state_0))
                                                   (if (if (eq?
                                                            'letrec-values
                                                            hd_0)
                                                         (let ((a_0
                                                                (cdr
                                                                 (unwrap
                                                                  v_0))))
                                                           (let ((p_0
                                                                  (unwrap
                                                                   a_0)))
                                                             (if (pair? p_0)
                                                               (if (let ((a_1
                                                                          (car
                                                                           p_0)))
                                                                     (let ((p_1
                                                                            (unwrap
                                                                             a_1)))
                                                                       (if (pair?
                                                                            p_1)
                                                                         (if (let ((a_2
                                                                                    (car
                                                                                     p_1)))
                                                                               (let ((p_2
                                                                                      (unwrap
                                                                                       a_2)))
                                                                                 (if (pair?
                                                                                      p_2)
                                                                                   (if (let ((a_3
                                                                                              (car
                                                                                               p_2)))
                                                                                         (let ((app_0
                                                                                                (unwrap
                                                                                                 '())))
                                                                                           (eq?
                                                                                            app_0
                                                                                            (unwrap
                                                                                             a_3))))
                                                                                     (let ((a_3
                                                                                            (cdr
                                                                                             p_2)))
                                                                                       (let ((p_3
                                                                                              (unwrap
                                                                                               a_3)))
                                                                                         (if (pair?
                                                                                              p_3)
                                                                                           (if (let ((a_4
                                                                                                      (car
                                                                                                       p_3)))
                                                                                                 (let ((p_4
                                                                                                        (unwrap
                                                                                                         a_4)))
                                                                                                   (if (pair?
                                                                                                        p_4)
                                                                                                     (if (let ((a_5
                                                                                                                (car
                                                                                                                 p_4)))
                                                                                                           (let ((app_0
                                                                                                                  (unwrap
                                                                                                                   'values)))
                                                                                                             (eq?
                                                                                                              app_0
                                                                                                              (unwrap
                                                                                                               a_5))))
                                                                                                       (let ((a_5
                                                                                                              (cdr
                                                                                                               p_4)))
                                                                                                         (let ((app_0
                                                                                                                (unwrap
                                                                                                                 '())))
                                                                                                           (eq?
                                                                                                            app_0
                                                                                                            (unwrap
                                                                                                             a_5))))
                                                                                                       #f)
                                                                                                     #f)))
                                                                                             (let ((a_4
                                                                                                    (cdr
                                                                                                     p_3)))
                                                                                               (let ((app_0
                                                                                                      (unwrap
                                                                                                       '())))
                                                                                                 (eq?
                                                                                                  app_0
                                                                                                  (unwrap
                                                                                                   a_4))))
                                                                                             #f)
                                                                                           #f)))
                                                                                     #f)
                                                                                   #f)))
                                                                           (let ((a_2
                                                                                  (cdr
                                                                                   p_1)))
                                                                             (let ((app_0
                                                                                    (unwrap
                                                                                     '())))
                                                                               (eq?
                                                                                app_0
                                                                                (unwrap
                                                                                 a_2))))
                                                                           #f)
                                                                         #f)))
                                                                 (let ((a_1
                                                                        (cdr
                                                                         p_0)))
                                                                   (wrap-list?
                                                                    a_1))
                                                                 #f)
                                                               #f)))
                                                         #f)
                                                     (let ((bodys_0
                                                            (let ((d_0
                                                                   (cdr
                                                                    (unwrap
                                                                     v_0))))
                                                              (let ((d_1
                                                                     (cdr
                                                                      (unwrap
                                                                       d_0))))
                                                                (unwrap-list
                                                                 d_1)))))
                                                       (schemify_0
                                                        add-import!_0
                                                        allow-inline?_0
                                                        allow-set!-undefined?_0
                                                        explicit-unnamed?_0
                                                        exports_0
                                                        for-cify?_0
                                                        for-interp?_0
                                                        imports_0
                                                        inline-fuel_0
                                                        knowns_0
                                                        mutated_0
                                                        no-prompt?_0
                                                        prim-knowns_0
                                                        primitives_0
                                                        simples_0
                                                        unsafe-mode?_0
                                                        (list* 'begin bodys_0)
                                                        wcm-state_0))
                                                     (if (if (eq?
                                                              'letrec-values
                                                              hd_0)
                                                           (let ((a_0
                                                                  (cdr
                                                                   (unwrap
                                                                    v_0))))
                                                             (let ((p_0
                                                                    (unwrap
                                                                     a_0)))
                                                               (if (pair? p_0)
                                                                 (if (let ((a_1
                                                                            (car
                                                                             p_0)))
                                                                       (let ((p_1
                                                                              (unwrap
                                                                               a_1)))
                                                                         (if (pair?
                                                                              p_1)
                                                                           (if (let ((a_2
                                                                                      (car
                                                                                       p_1)))
                                                                                 (let ((p_2
                                                                                        (unwrap
                                                                                         a_2)))
                                                                                   (if (pair?
                                                                                        p_2)
                                                                                     (if (let ((a_3
                                                                                                (car
                                                                                                 p_2)))
                                                                                           (let ((p_3
                                                                                                  (unwrap
                                                                                                   a_3)))
                                                                                             (if (pair?
                                                                                                  p_3)
                                                                                               (let ((a_4
                                                                                                      (cdr
                                                                                                       p_3)))
                                                                                                 (let ((app_0
                                                                                                        (unwrap
                                                                                                         '())))
                                                                                                   (eq?
                                                                                                    app_0
                                                                                                    (unwrap
                                                                                                     a_4))))
                                                                                               #f)))
                                                                                       (let ((a_3
                                                                                              (cdr
                                                                                               p_2)))
                                                                                         (let ((p_3
                                                                                                (unwrap
                                                                                                 a_3)))
                                                                                           (if (pair?
                                                                                                p_3)
                                                                                             (if (let ((a_4
                                                                                                        (car
                                                                                                         p_3)))
                                                                                                   (let ((p_4
                                                                                                          (unwrap
                                                                                                           a_4)))
                                                                                                     (if (pair?
                                                                                                          p_4)
                                                                                                       (if (let ((a_5
                                                                                                                  (car
                                                                                                                   p_4)))
                                                                                                             (let ((app_0
                                                                                                                    (unwrap
                                                                                                                     'values)))
                                                                                                               (eq?
                                                                                                                app_0
                                                                                                                (unwrap
                                                                                                                 a_5))))
                                                                                                         (let ((a_5
                                                                                                                (cdr
                                                                                                                 p_4)))
                                                                                                           (let ((p_5
                                                                                                                  (unwrap
                                                                                                                   a_5)))
                                                                                                             (if (pair?
                                                                                                                  p_5)
                                                                                                               (let ((a_6
                                                                                                                      (cdr
                                                                                                                       p_5)))
                                                                                                                 (let ((app_0
                                                                                                                        (unwrap
                                                                                                                         '())))
                                                                                                                   (eq?
                                                                                                                    app_0
                                                                                                                    (unwrap
                                                                                                                     a_6))))
                                                                                                               #f)))
                                                                                                         #f)
                                                                                                       #f)))
                                                                                               (let ((a_4
                                                                                                      (cdr
                                                                                                       p_3)))
                                                                                                 (let ((app_0
                                                                                                        (unwrap
                                                                                                         '())))
                                                                                                   (eq?
                                                                                                    app_0
                                                                                                    (unwrap
                                                                                                     a_4))))
                                                                                               #f)
                                                                                             #f)))
                                                                                       #f)
                                                                                     #f)))
                                                                             (let ((a_2
                                                                                    (cdr
                                                                                     p_1)))
                                                                               (let ((app_0
                                                                                      (unwrap
                                                                                       '())))
                                                                                 (eq?
                                                                                  app_0
                                                                                  (unwrap
                                                                                   a_2))))
                                                                             #f)
                                                                           #f)))
                                                                   (let ((a_1
                                                                          (cdr
                                                                           p_0)))
                                                                     (wrap-list?
                                                                      a_1))
                                                                   #f)
                                                                 #f)))
                                                           #f)
                                                       (call-with-values
                                                        (lambda ()
                                                          (let ((d_0
                                                                 (cdr
                                                                  (unwrap
                                                                   v_0))))
                                                            (let ((p_0
                                                                   (unwrap
                                                                    d_0)))
                                                              (call-with-values
                                                               (lambda ()
                                                                 (let ((a_0
                                                                        (car
                                                                         p_0)))
                                                                   (let ((a_1
                                                                          (car
                                                                           (unwrap
                                                                            a_0))))
                                                                     (let ((p_1
                                                                            (unwrap
                                                                             a_1)))
                                                                       (let ((id_0
                                                                              (let ((a_2
                                                                                     (car
                                                                                      p_1)))
                                                                                (let ((a_3
                                                                                       (car
                                                                                        (unwrap
                                                                                         a_2))))
                                                                                  a_3))))
                                                                         (let ((rhs_0
                                                                                (let ((d_1
                                                                                       (cdr
                                                                                        p_1)))
                                                                                  (let ((a_2
                                                                                         (car
                                                                                          (unwrap
                                                                                           d_1))))
                                                                                    (let ((d_2
                                                                                           (cdr
                                                                                            (unwrap
                                                                                             a_2))))
                                                                                      (let ((a_3
                                                                                             (car
                                                                                              (unwrap
                                                                                               d_2))))
                                                                                        a_3))))))
                                                                           (let ((id_1
                                                                                  id_0))
                                                                             (values
                                                                              id_1
                                                                              rhs_0))))))))
                                                               (case-lambda
                                                                ((id_0 rhs_0)
                                                                 (let ((bodys_0
                                                                        (let ((d_1
                                                                               (cdr
                                                                                p_0)))
                                                                          (unwrap-list
                                                                           d_1))))
                                                                   (let ((id_1
                                                                          id_0)
                                                                         (rhs_1
                                                                          rhs_0))
                                                                     (values
                                                                      id_1
                                                                      rhs_1
                                                                      bodys_0))))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))))
                                                        (case-lambda
                                                         ((id_0 rhs_0 bodys_0)
                                                          (schemify_0
                                                           add-import!_0
                                                           allow-inline?_0
                                                           allow-set!-undefined?_0
                                                           explicit-unnamed?_0
                                                           exports_0
                                                           for-cify?_0
                                                           for-interp?_0
                                                           imports_0
                                                           inline-fuel_0
                                                           knowns_0
                                                           mutated_0
                                                           no-prompt?_0
                                                           prim-knowns_0
                                                           primitives_0
                                                           simples_0
                                                           unsafe-mode?_0
                                                           (list*
                                                            'letrec-values
                                                            (list
                                                             (list
                                                              (list id_0)
                                                              rhs_0))
                                                            bodys_0)
                                                           wcm-state_0))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           3
                                                           args))))
                                                       (if (if (eq?
                                                                'letrec-values
                                                                hd_0)
                                                             (let ((a_0
                                                                    (cdr
                                                                     (unwrap
                                                                      v_0))))
                                                               (let ((p_0
                                                                      (unwrap
                                                                       a_0)))
                                                                 (if (pair?
                                                                      p_0)
                                                                   (if (let ((a_1
                                                                              (car
                                                                               p_0)))
                                                                         (if (wrap-list?
                                                                              a_1)
                                                                           (begin
                                                                             (letrec*
                                                                              ((for-loop_0
                                                                                (|#%name|
                                                                                 for-loop
                                                                                 (lambda (result_0
                                                                                          lst_0)
                                                                                   (begin
                                                                                     (if (not
                                                                                          (null?
                                                                                           (unwrap
                                                                                            lst_0)))
                                                                                       (let ((v_1
                                                                                              (if (pair?
                                                                                                   (unwrap
                                                                                                    lst_0))
                                                                                                (wrap-car
                                                                                                 lst_0)
                                                                                                lst_0)))
                                                                                         (let ((rest_0
                                                                                                (if (pair?
                                                                                                     (unwrap
                                                                                                      lst_0))
                                                                                                  (wrap-cdr
                                                                                                   lst_0)
                                                                                                  null)))
                                                                                           (let ((v_2
                                                                                                  v_1))
                                                                                             (let ((result_1
                                                                                                    (let ((result_1
                                                                                                           (let ((p_1
                                                                                                                  (unwrap
                                                                                                                   v_2)))
                                                                                                             (if (pair?
                                                                                                                  p_1)
                                                                                                               (if (let ((a_2
                                                                                                                          (car
                                                                                                                           p_1)))
                                                                                                                     (let ((p_2
                                                                                                                            (unwrap
                                                                                                                             a_2)))
                                                                                                                       (if (pair?
                                                                                                                            p_2)
                                                                                                                         (let ((a_3
                                                                                                                                (cdr
                                                                                                                                 p_2)))
                                                                                                                           (let ((app_0
                                                                                                                                  (unwrap
                                                                                                                                   '())))
                                                                                                                             (eq?
                                                                                                                              app_0
                                                                                                                              (unwrap
                                                                                                                               a_3))))
                                                                                                                         #f)))
                                                                                                                 (let ((a_2
                                                                                                                        (cdr
                                                                                                                         p_1)))
                                                                                                                   (let ((p_2
                                                                                                                          (unwrap
                                                                                                                           a_2)))
                                                                                                                     (if (pair?
                                                                                                                          p_2)
                                                                                                                       (let ((a_3
                                                                                                                              (cdr
                                                                                                                               p_2)))
                                                                                                                         (let ((app_0
                                                                                                                                (unwrap
                                                                                                                                 '())))
                                                                                                                           (eq?
                                                                                                                            app_0
                                                                                                                            (unwrap
                                                                                                                             a_3))))
                                                                                                                       #f)))
                                                                                                                 #f)
                                                                                                               #f))))
                                                                                                      (values
                                                                                                       result_1))))
                                                                                               (if (if (not
                                                                                                        (let ((x_0
                                                                                                               (list
                                                                                                                v_2)))
                                                                                                          (not
                                                                                                           result_1)))
                                                                                                     #t
                                                                                                     #f)
                                                                                                 (for-loop_0
                                                                                                  result_1
                                                                                                  rest_0)
                                                                                                 result_1)))))
                                                                                       result_0))))))
                                                                              (for-loop_0
                                                                               #t
                                                                               a_1)))
                                                                           #f))
                                                                     (let ((a_1
                                                                            (cdr
                                                                             p_0)))
                                                                       (wrap-list?
                                                                        a_1))
                                                                     #f)
                                                                   #f)))
                                                             #f)
                                                         (call-with-values
                                                          (lambda ()
                                                            (let ((d_0
                                                                   (cdr
                                                                    (unwrap
                                                                     v_0))))
                                                              (let ((p_0
                                                                     (unwrap
                                                                      d_0)))
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (let ((a_0
                                                                          (car
                                                                           p_0)))
                                                                     (call-with-values
                                                                      (lambda ()
                                                                        (begin
                                                                          (letrec*
                                                                           ((for-loop_0
                                                                             (|#%name|
                                                                              for-loop
                                                                              (lambda (ids_0
                                                                                       rhss_0
                                                                                       lst_0)
                                                                                (begin
                                                                                  (if (not
                                                                                       (null?
                                                                                        (unwrap
                                                                                         lst_0)))
                                                                                    (let ((v_1
                                                                                           (if (pair?
                                                                                                (unwrap
                                                                                                 lst_0))
                                                                                             (wrap-car
                                                                                              lst_0)
                                                                                             lst_0)))
                                                                                      (let ((rest_0
                                                                                             (if (pair?
                                                                                                  (unwrap
                                                                                                   lst_0))
                                                                                               (wrap-cdr
                                                                                                lst_0)
                                                                                               null)))
                                                                                        (let ((v_2
                                                                                               v_1))
                                                                                          (call-with-values
                                                                                           (lambda ()
                                                                                             (call-with-values
                                                                                              (lambda ()
                                                                                                (call-with-values
                                                                                                 (lambda ()
                                                                                                   (let ((p_1
                                                                                                          (unwrap
                                                                                                           v_2)))
                                                                                                     (let ((ids_1
                                                                                                            (let ((a_1
                                                                                                                   (car
                                                                                                                    p_1)))
                                                                                                              (let ((a_2
                                                                                                                     (car
                                                                                                                      (unwrap
                                                                                                                       a_1))))
                                                                                                                a_2))))
                                                                                                       (let ((rhss_1
                                                                                                              (let ((d_1
                                                                                                                     (cdr
                                                                                                                      p_1)))
                                                                                                                (let ((a_1
                                                                                                                       (car
                                                                                                                        (unwrap
                                                                                                                         d_1))))
                                                                                                                  a_1))))
                                                                                                         (let ((ids_2
                                                                                                                ids_1))
                                                                                                           (values
                                                                                                            ids_2
                                                                                                            rhss_1))))))
                                                                                                 (case-lambda
                                                                                                  ((ids100_0
                                                                                                    rhss101_0)
                                                                                                   (values
                                                                                                    (cons
                                                                                                     ids100_0
                                                                                                     ids_0)
                                                                                                    (cons
                                                                                                     rhss101_0
                                                                                                     rhss_0)))
                                                                                                  (args
                                                                                                   (raise-binding-result-arity-error
                                                                                                    2
                                                                                                    args)))))
                                                                                              (case-lambda
                                                                                               ((ids_1
                                                                                                 rhss_1)
                                                                                                (values
                                                                                                 ids_1
                                                                                                 rhss_1))
                                                                                               (args
                                                                                                (raise-binding-result-arity-error
                                                                                                 2
                                                                                                 args)))))
                                                                                           (case-lambda
                                                                                            ((ids_1
                                                                                              rhss_1)
                                                                                             (for-loop_0
                                                                                              ids_1
                                                                                              rhss_1
                                                                                              rest_0))
                                                                                            (args
                                                                                             (raise-binding-result-arity-error
                                                                                              2
                                                                                              args)))))))
                                                                                    (values
                                                                                     ids_0
                                                                                     rhss_0)))))))
                                                                           (for-loop_0
                                                                            null
                                                                            null
                                                                            a_0))))
                                                                      (case-lambda
                                                                       ((ids_0
                                                                         rhss_0)
                                                                        (let ((app_0
                                                                               (reverse$1
                                                                                ids_0)))
                                                                          (values
                                                                           app_0
                                                                           (reverse$1
                                                                            rhss_0))))
                                                                       (args
                                                                        (raise-binding-result-arity-error
                                                                         2
                                                                         args))))))
                                                                 (case-lambda
                                                                  ((ids_0
                                                                    rhss_0)
                                                                   (let ((bodys_0
                                                                          (let ((d_1
                                                                                 (cdr
                                                                                  p_0)))
                                                                            (unwrap-list
                                                                             d_1))))
                                                                     (let ((ids_1
                                                                            ids_0)
                                                                           (rhss_1
                                                                            rhss_0))
                                                                       (values
                                                                        ids_1
                                                                        rhss_1
                                                                        bodys_0))))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    2
                                                                    args)))))))
                                                          (case-lambda
                                                           ((ids_0
                                                             rhss_0
                                                             bodys_0)
                                                            (call-with-values
                                                             (lambda ()
                                                               (begin
                                                                 (letrec*
                                                                  ((for-loop_0
                                                                    (|#%name|
                                                                     for-loop
                                                                     (lambda (rhs-knowns_0
                                                                              body-knowns_0
                                                                              lst_0
                                                                              lst_1)
                                                                       (begin
                                                                         (if (if (pair?
                                                                                  lst_0)
                                                                               (pair?
                                                                                lst_1)
                                                                               #f)
                                                                           (let ((id_0
                                                                                  (unsafe-car
                                                                                   lst_0)))
                                                                             (let ((rest_0
                                                                                    (unsafe-cdr
                                                                                     lst_0)))
                                                                               (let ((rhs_0
                                                                                      (unsafe-car
                                                                                       lst_1)))
                                                                                 (let ((rest_1
                                                                                        (unsafe-cdr
                                                                                         lst_1)))
                                                                                   (call-with-values
                                                                                    (lambda ()
                                                                                      (call-with-values
                                                                                       (lambda ()
                                                                                         (let ((k_0
                                                                                                (infer-known.1
                                                                                                 #f
                                                                                                 #f
                                                                                                 hash2610
                                                                                                 rhs_0
                                                                                                 #f
                                                                                                 id_0
                                                                                                 knowns_0
                                                                                                 prim-knowns_0
                                                                                                 imports_0
                                                                                                 mutated_0
                                                                                                 simples_0
                                                                                                 unsafe-mode?_0)))
                                                                                           (let ((u-id_0
                                                                                                  (unwrap
                                                                                                   id_0)))
                                                                                             (if (too-early-mutated-state?
                                                                                                  (hash-ref
                                                                                                   mutated_0
                                                                                                   u-id_0
                                                                                                   #f))
                                                                                               (values
                                                                                                rhs-knowns_0
                                                                                                (hash-set
                                                                                                 knowns_0
                                                                                                 u-id_0
                                                                                                 (if k_0
                                                                                                   k_0
                                                                                                   a-known-constant)))
                                                                                               (if k_0
                                                                                                 (let ((app_0
                                                                                                        (hash-set
                                                                                                         rhs-knowns_0
                                                                                                         u-id_0
                                                                                                         k_0)))
                                                                                                   (values
                                                                                                    app_0
                                                                                                    (hash-set
                                                                                                     body-knowns_0
                                                                                                     u-id_0
                                                                                                     k_0)))
                                                                                                 (values
                                                                                                  rhs-knowns_0
                                                                                                  body-knowns_0))))))
                                                                                       (case-lambda
                                                                                        ((rhs-knowns_1
                                                                                          body-knowns_1)
                                                                                         (values
                                                                                          rhs-knowns_1
                                                                                          body-knowns_1))
                                                                                        (args
                                                                                         (raise-binding-result-arity-error
                                                                                          2
                                                                                          args)))))
                                                                                    (case-lambda
                                                                                     ((rhs-knowns_1
                                                                                       body-knowns_1)
                                                                                      (for-loop_0
                                                                                       rhs-knowns_1
                                                                                       body-knowns_1
                                                                                       rest_0
                                                                                       rest_1))
                                                                                     (args
                                                                                      (raise-binding-result-arity-error
                                                                                       2
                                                                                       args))))))))
                                                                           (values
                                                                            rhs-knowns_0
                                                                            body-knowns_0)))))))
                                                                  (for-loop_0
                                                                   knowns_0
                                                                   knowns_0
                                                                   ids_0
                                                                   rhss_0))))
                                                             (case-lambda
                                                              ((rhs-knowns_0
                                                                body-knowns_0)
                                                               (unnest-let
                                                                (letrec-conversion
                                                                 ids_0
                                                                 mutated_0
                                                                 for-cify?_0
                                                                 (let ((app_0
                                                                        (reverse$1
                                                                         (begin
                                                                           (letrec*
                                                                            ((for-loop_0
                                                                              (|#%name|
                                                                               for-loop
                                                                               (lambda (fold-var_0
                                                                                        lst_0
                                                                                        lst_1)
                                                                                 (begin
                                                                                   (if (if (pair?
                                                                                            lst_0)
                                                                                         (pair?
                                                                                          lst_1)
                                                                                         #f)
                                                                                     (let ((id_0
                                                                                            (unsafe-car
                                                                                             lst_0)))
                                                                                       (let ((rest_0
                                                                                              (unsafe-cdr
                                                                                               lst_0)))
                                                                                         (let ((rhs_0
                                                                                                (unsafe-car
                                                                                                 lst_1)))
                                                                                           (let ((rest_1
                                                                                                  (unsafe-cdr
                                                                                                   lst_1)))
                                                                                             (let ((fold-var_1
                                                                                                    (let ((fold-var_1
                                                                                                           (cons
                                                                                                            (list
                                                                                                             id_0
                                                                                                             (schemify/knowns_0
                                                                                                              add-import!_0
                                                                                                              allow-inline?_0
                                                                                                              allow-set!-undefined?_0
                                                                                                              explicit-unnamed?_0
                                                                                                              exports_0
                                                                                                              for-cify?_0
                                                                                                              for-interp?_0
                                                                                                              imports_0
                                                                                                              mutated_0
                                                                                                              no-prompt?_0
                                                                                                              prim-knowns_0
                                                                                                              primitives_0
                                                                                                              simples_0
                                                                                                              unsafe-mode?_0
                                                                                                              rhs-knowns_0
                                                                                                              inline-fuel_0
                                                                                                              'fresh
                                                                                                              rhs_0))
                                                                                                            fold-var_0)))
                                                                                                      (values
                                                                                                       fold-var_1))))
                                                                                               (for-loop_0
                                                                                                fold-var_1
                                                                                                rest_0
                                                                                                rest_1))))))
                                                                                     fold-var_0))))))
                                                                            (for-loop_0
                                                                             null
                                                                             ids_0
                                                                             rhss_0))))))
                                                                   (list*
                                                                    'letrec*
                                                                    app_0
                                                                    (reverse$1
                                                                     (begin
                                                                       (letrec*
                                                                        ((for-loop_0
                                                                          (|#%name|
                                                                           for-loop
                                                                           (lambda (fold-var_0
                                                                                    lst_0)
                                                                             (begin
                                                                               (if (pair?
                                                                                    lst_0)
                                                                                 (let ((body_0
                                                                                        (unsafe-car
                                                                                         lst_0)))
                                                                                   (let ((rest_0
                                                                                          (unsafe-cdr
                                                                                           lst_0)))
                                                                                     (let ((fold-var_1
                                                                                            (let ((fold-var_1
                                                                                                   (cons
                                                                                                    (schemify/knowns_0
                                                                                                     add-import!_0
                                                                                                     allow-inline?_0
                                                                                                     allow-set!-undefined?_0
                                                                                                     explicit-unnamed?_0
                                                                                                     exports_0
                                                                                                     for-cify?_0
                                                                                                     for-interp?_0
                                                                                                     imports_0
                                                                                                     mutated_0
                                                                                                     no-prompt?_0
                                                                                                     prim-knowns_0
                                                                                                     primitives_0
                                                                                                     simples_0
                                                                                                     unsafe-mode?_0
                                                                                                     body-knowns_0
                                                                                                     inline-fuel_0
                                                                                                     wcm-state_0
                                                                                                     body_0)
                                                                                                    fold-var_0)))
                                                                                              (values
                                                                                               fold-var_1))))
                                                                                       (for-loop_0
                                                                                        fold-var_1
                                                                                        rest_0))))
                                                                                 fold-var_0))))))
                                                                        (for-loop_0
                                                                         null
                                                                         bodys_0)))))))
                                                                prim-knowns_0
                                                                knowns_0
                                                                imports_0
                                                                mutated_0
                                                                simples_0))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                2
                                                                args)))))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             3
                                                             args))))
                                                         (if (if (eq?
                                                                  'letrec-values
                                                                  hd_0)
                                                               (let ((a_0
                                                                      (cdr
                                                                       (unwrap
                                                                        v_0))))
                                                                 (let ((p_0
                                                                        (unwrap
                                                                         a_0)))
                                                                   (if (pair?
                                                                        p_0)
                                                                     (if (let ((a_1
                                                                                (car
                                                                                 p_0)))
                                                                           (if (wrap-list?
                                                                                a_1)
                                                                             (begin
                                                                               (letrec*
                                                                                ((for-loop_0
                                                                                  (|#%name|
                                                                                   for-loop
                                                                                   (lambda (result_0
                                                                                            lst_0)
                                                                                     (begin
                                                                                       (if (not
                                                                                            (null?
                                                                                             (unwrap
                                                                                              lst_0)))
                                                                                         (let ((v_1
                                                                                                (if (pair?
                                                                                                     (unwrap
                                                                                                      lst_0))
                                                                                                  (wrap-car
                                                                                                   lst_0)
                                                                                                  lst_0)))
                                                                                           (let ((rest_0
                                                                                                  (if (pair?
                                                                                                       (unwrap
                                                                                                        lst_0))
                                                                                                    (wrap-cdr
                                                                                                     lst_0)
                                                                                                    null)))
                                                                                             (let ((v_2
                                                                                                    v_1))
                                                                                               (let ((result_1
                                                                                                      (let ((result_1
                                                                                                             (let ((p_1
                                                                                                                    (unwrap
                                                                                                                     v_2)))
                                                                                                               (if (pair?
                                                                                                                    p_1)
                                                                                                                 (let ((a_2
                                                                                                                        (cdr
                                                                                                                         p_1)))
                                                                                                                   (let ((p_2
                                                                                                                          (unwrap
                                                                                                                           a_2)))
                                                                                                                     (if (pair?
                                                                                                                          p_2)
                                                                                                                       (let ((a_3
                                                                                                                              (cdr
                                                                                                                               p_2)))
                                                                                                                         (let ((app_0
                                                                                                                                (unwrap
                                                                                                                                 '())))
                                                                                                                           (eq?
                                                                                                                            app_0
                                                                                                                            (unwrap
                                                                                                                             a_3))))
                                                                                                                       #f)))
                                                                                                                 #f))))
                                                                                                        (values
                                                                                                         result_1))))
                                                                                                 (if (if (not
                                                                                                          (let ((x_0
                                                                                                                 (list
                                                                                                                  v_2)))
                                                                                                            (not
                                                                                                             result_1)))
                                                                                                       #t
                                                                                                       #f)
                                                                                                   (for-loop_0
                                                                                                    result_1
                                                                                                    rest_0)
                                                                                                   result_1)))))
                                                                                         result_0))))))
                                                                                (for-loop_0
                                                                                 #t
                                                                                 a_1)))
                                                                             #f))
                                                                       (let ((a_1
                                                                              (cdr
                                                                               p_0)))
                                                                         (wrap-list?
                                                                          a_1))
                                                                       #f)
                                                                     #f)))
                                                               #f)
                                                           (call-with-values
                                                            (lambda ()
                                                              (let ((d_0
                                                                     (cdr
                                                                      (unwrap
                                                                       v_0))))
                                                                (let ((p_0
                                                                       (unwrap
                                                                        d_0)))
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (let ((a_0
                                                                            (car
                                                                             p_0)))
                                                                       (call-with-values
                                                                        (lambda ()
                                                                          (begin
                                                                            (letrec*
                                                                             ((for-loop_0
                                                                               (|#%name|
                                                                                for-loop
                                                                                (lambda (idss_0
                                                                                         rhss_0
                                                                                         lst_0)
                                                                                  (begin
                                                                                    (if (not
                                                                                         (null?
                                                                                          (unwrap
                                                                                           lst_0)))
                                                                                      (let ((v_1
                                                                                             (if (pair?
                                                                                                  (unwrap
                                                                                                   lst_0))
                                                                                               (wrap-car
                                                                                                lst_0)
                                                                                               lst_0)))
                                                                                        (let ((rest_0
                                                                                               (if (pair?
                                                                                                    (unwrap
                                                                                                     lst_0))
                                                                                                 (wrap-cdr
                                                                                                  lst_0)
                                                                                                 null)))
                                                                                          (let ((v_2
                                                                                                 v_1))
                                                                                            (call-with-values
                                                                                             (lambda ()
                                                                                               (call-with-values
                                                                                                (lambda ()
                                                                                                  (call-with-values
                                                                                                   (lambda ()
                                                                                                     (let ((p_1
                                                                                                            (unwrap
                                                                                                             v_2)))
                                                                                                       (let ((idss_1
                                                                                                              (let ((a_1
                                                                                                                     (car
                                                                                                                      p_1)))
                                                                                                                a_1)))
                                                                                                         (let ((rhss_1
                                                                                                                (let ((d_1
                                                                                                                       (cdr
                                                                                                                        p_1)))
                                                                                                                  (let ((a_1
                                                                                                                         (car
                                                                                                                          (unwrap
                                                                                                                           d_1))))
                                                                                                                    a_1))))
                                                                                                           (let ((idss_2
                                                                                                                  idss_1))
                                                                                                             (values
                                                                                                              idss_2
                                                                                                              rhss_1))))))
                                                                                                   (case-lambda
                                                                                                    ((idss111_0
                                                                                                      rhss112_0)
                                                                                                     (values
                                                                                                      (cons
                                                                                                       idss111_0
                                                                                                       idss_0)
                                                                                                      (cons
                                                                                                       rhss112_0
                                                                                                       rhss_0)))
                                                                                                    (args
                                                                                                     (raise-binding-result-arity-error
                                                                                                      2
                                                                                                      args)))))
                                                                                                (case-lambda
                                                                                                 ((idss_1
                                                                                                   rhss_1)
                                                                                                  (values
                                                                                                   idss_1
                                                                                                   rhss_1))
                                                                                                 (args
                                                                                                  (raise-binding-result-arity-error
                                                                                                   2
                                                                                                   args)))))
                                                                                             (case-lambda
                                                                                              ((idss_1
                                                                                                rhss_1)
                                                                                               (for-loop_0
                                                                                                idss_1
                                                                                                rhss_1
                                                                                                rest_0))
                                                                                              (args
                                                                                               (raise-binding-result-arity-error
                                                                                                2
                                                                                                args)))))))
                                                                                      (values
                                                                                       idss_0
                                                                                       rhss_0)))))))
                                                                             (for-loop_0
                                                                              null
                                                                              null
                                                                              a_0))))
                                                                        (case-lambda
                                                                         ((idss_0
                                                                           rhss_0)
                                                                          (let ((app_0
                                                                                 (reverse$1
                                                                                  idss_0)))
                                                                            (values
                                                                             app_0
                                                                             (reverse$1
                                                                              rhss_0))))
                                                                         (args
                                                                          (raise-binding-result-arity-error
                                                                           2
                                                                           args))))))
                                                                   (case-lambda
                                                                    ((idss_0
                                                                      rhss_0)
                                                                     (let ((bodys_0
                                                                            (let ((d_1
                                                                                   (cdr
                                                                                    p_0)))
                                                                              (unwrap-list
                                                                               d_1))))
                                                                       (let ((idss_1
                                                                              idss_0)
                                                                             (rhss_1
                                                                              rhss_0))
                                                                         (values
                                                                          idss_1
                                                                          rhss_1
                                                                          bodys_0))))
                                                                    (args
                                                                     (raise-binding-result-arity-error
                                                                      2
                                                                      args)))))))
                                                            (case-lambda
                                                             ((idss_0
                                                               rhss_0
                                                               bodys_0)
                                                              (let ((temp120_0
                                                                     (|#%name|
                                                                      temp120
                                                                      (lambda (v_1
                                                                               knowns_1)
                                                                        (begin
                                                                          (schemify/knowns_0
                                                                           add-import!_0
                                                                           allow-inline?_0
                                                                           allow-set!-undefined?_0
                                                                           explicit-unnamed?_0
                                                                           exports_0
                                                                           for-cify?_0
                                                                           for-interp?_0
                                                                           imports_0
                                                                           mutated_0
                                                                           no-prompt?_0
                                                                           prim-knowns_0
                                                                           primitives_0
                                                                           simples_0
                                                                           unsafe-mode?_0
                                                                           knowns_1
                                                                           inline-fuel_0
                                                                           'fresh
                                                                           v_1))))))
                                                                (let ((c1_0
                                                                       (struct-convert-local.1
                                                                        #t
                                                                        unsafe-mode?_0
                                                                        v_0
                                                                        prim-knowns_0
                                                                        knowns_0
                                                                        imports_0
                                                                        mutated_0
                                                                        simples_0
                                                                        temp120_0)))
                                                                  (if c1_0
                                                                    c1_0
                                                                    (if (letrec-splitable-values-binding?
                                                                         idss_0
                                                                         rhss_0)
                                                                      (schemify_0
                                                                       add-import!_0
                                                                       allow-inline?_0
                                                                       allow-set!-undefined?_0
                                                                       explicit-unnamed?_0
                                                                       exports_0
                                                                       for-cify?_0
                                                                       for-interp?_0
                                                                       imports_0
                                                                       inline-fuel_0
                                                                       knowns_0
                                                                       mutated_0
                                                                       no-prompt?_0
                                                                       prim-knowns_0
                                                                       primitives_0
                                                                       simples_0
                                                                       unsafe-mode?_0
                                                                       (letrec-split-values-binding
                                                                        idss_0
                                                                        rhss_0
                                                                        bodys_0)
                                                                       wcm-state_0)
                                                                      (letrec-conversion
                                                                       idss_0
                                                                       mutated_0
                                                                       for-cify?_0
                                                                       (let ((app_0
                                                                              (apply
                                                                               append
                                                                               (reverse$1
                                                                                (begin
                                                                                  (letrec*
                                                                                   ((for-loop_0
                                                                                     (|#%name|
                                                                                      for-loop
                                                                                      (lambda (fold-var_0
                                                                                               lst_0
                                                                                               lst_1)
                                                                                        (begin
                                                                                          (if (if (pair?
                                                                                                   lst_0)
                                                                                                (pair?
                                                                                                 lst_1)
                                                                                                #f)
                                                                                            (let ((ids_0
                                                                                                   (unsafe-car
                                                                                                    lst_0)))
                                                                                              (let ((rest_0
                                                                                                     (unsafe-cdr
                                                                                                      lst_0)))
                                                                                                (let ((rhs_0
                                                                                                       (unsafe-car
                                                                                                        lst_1)))
                                                                                                  (let ((rest_1
                                                                                                         (unsafe-cdr
                                                                                                          lst_1)))
                                                                                                    (let ((fold-var_1
                                                                                                           (let ((fold-var_1
                                                                                                                  (cons
                                                                                                                   (let ((rhs_1
                                                                                                                          (schemify_0
                                                                                                                           add-import!_0
                                                                                                                           allow-inline?_0
                                                                                                                           allow-set!-undefined?_0
                                                                                                                           explicit-unnamed?_0
                                                                                                                           exports_0
                                                                                                                           for-cify?_0
                                                                                                                           for-interp?_0
                                                                                                                           imports_0
                                                                                                                           inline-fuel_0
                                                                                                                           knowns_0
                                                                                                                           mutated_0
                                                                                                                           no-prompt?_0
                                                                                                                           prim-knowns_0
                                                                                                                           primitives_0
                                                                                                                           simples_0
                                                                                                                           unsafe-mode?_0
                                                                                                                           rhs_0
                                                                                                                           'fresh)))
                                                                                                                     (if (null?
                                                                                                                          ids_0)
                                                                                                                       (list
                                                                                                                        (let ((app_0
                                                                                                                               (deterministic-gensym
                                                                                                                                "lr")))
                                                                                                                          (list
                                                                                                                           app_0
                                                                                                                           (make-let-values
                                                                                                                            null
                                                                                                                            rhs_1
                                                                                                                            '(void)
                                                                                                                            for-cify?_0))))
                                                                                                                       (if (if (pair?
                                                                                                                                ids_0)
                                                                                                                             (null?
                                                                                                                              (cdr
                                                                                                                               ids_0))
                                                                                                                             #f)
                                                                                                                         (list
                                                                                                                          (list
                                                                                                                           (car
                                                                                                                            ids_0)
                                                                                                                           rhs_1))
                                                                                                                         (let ((lr_0
                                                                                                                                (deterministic-gensym
                                                                                                                                 "lr")))
                                                                                                                           (let ((app_0
                                                                                                                                  (list
                                                                                                                                   lr_0
                                                                                                                                   (make-let-values
                                                                                                                                    ids_0
                                                                                                                                    rhs_1
                                                                                                                                    (list*
                                                                                                                                     'vector
                                                                                                                                     ids_0)
                                                                                                                                    for-cify?_0))))
                                                                                                                             (list*
                                                                                                                              app_0
                                                                                                                              (reverse$1
                                                                                                                               (begin
                                                                                                                                 (letrec*
                                                                                                                                  ((for-loop_1
                                                                                                                                    (|#%name|
                                                                                                                                     for-loop
                                                                                                                                     (lambda (fold-var_1
                                                                                                                                              lst_2
                                                                                                                                              pos_0)
                                                                                                                                       (begin
                                                                                                                                         (if (if (pair?
                                                                                                                                                  lst_2)
                                                                                                                                               #t
                                                                                                                                               #f)
                                                                                                                                           (let ((id_0
                                                                                                                                                  (unsafe-car
                                                                                                                                                   lst_2)))
                                                                                                                                             (let ((rest_2
                                                                                                                                                    (unsafe-cdr
                                                                                                                                                     lst_2)))
                                                                                                                                               (let ((fold-var_2
                                                                                                                                                      (cons
                                                                                                                                                       (list
                                                                                                                                                        id_0
                                                                                                                                                        (list
                                                                                                                                                         'unsafe-vector*-ref
                                                                                                                                                         lr_0
                                                                                                                                                         pos_0))
                                                                                                                                                       fold-var_1)))
                                                                                                                                                 (let ((fold-var_3
                                                                                                                                                        (values
                                                                                                                                                         fold-var_2)))
                                                                                                                                                   (for-loop_1
                                                                                                                                                    fold-var_3
                                                                                                                                                    rest_2
                                                                                                                                                    (+
                                                                                                                                                     pos_0
                                                                                                                                                     1))))))
                                                                                                                                           fold-var_1))))))
                                                                                                                                  (for-loop_1
                                                                                                                                   null
                                                                                                                                   ids_0
                                                                                                                                   0))))))))))
                                                                                                                   fold-var_0)))
                                                                                                             (values
                                                                                                              fold-var_1))))
                                                                                                      (for-loop_0
                                                                                                       fold-var_1
                                                                                                       rest_0
                                                                                                       rest_1))))))
                                                                                            fold-var_0))))))
                                                                                   (for-loop_0
                                                                                    null
                                                                                    idss_0
                                                                                    rhss_0)))))))
                                                                         (list*
                                                                          'letrec*
                                                                          app_0
                                                                          (schemify-body_0
                                                                           add-import!_0
                                                                           allow-inline?_0
                                                                           allow-set!-undefined?_0
                                                                           explicit-unnamed?_0
                                                                           exports_0
                                                                           for-cify?_0
                                                                           for-interp?_0
                                                                           imports_0
                                                                           inline-fuel_0
                                                                           knowns_0
                                                                           mutated_0
                                                                           no-prompt?_0
                                                                           prim-knowns_0
                                                                           primitives_0
                                                                           simples_0
                                                                           unsafe-mode?_0
                                                                           bodys_0
                                                                           wcm-state_0)))))))))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               3
                                                               args))))
                                                           (if (if (eq?
                                                                    'if
                                                                    hd_0)
                                                                 (let ((a_0
                                                                        (cdr
                                                                         (unwrap
                                                                          v_0))))
                                                                   (let ((p_0
                                                                          (unwrap
                                                                           a_0)))
                                                                     (if (pair?
                                                                          p_0)
                                                                       (let ((a_1
                                                                              (cdr
                                                                               p_0)))
                                                                         (let ((p_1
                                                                                (unwrap
                                                                                 a_1)))
                                                                           (if (pair?
                                                                                p_1)
                                                                             (let ((a_2
                                                                                    (cdr
                                                                                     p_1)))
                                                                               (let ((p_2
                                                                                      (unwrap
                                                                                       a_2)))
                                                                                 (if (pair?
                                                                                      p_2)
                                                                                   (let ((a_3
                                                                                          (cdr
                                                                                           p_2)))
                                                                                     (let ((app_0
                                                                                            (unwrap
                                                                                             '())))
                                                                                       (eq?
                                                                                        app_0
                                                                                        (unwrap
                                                                                         a_3))))
                                                                                   #f)))
                                                                             #f)))
                                                                       #f)))
                                                                 #f)
                                                             (call-with-values
                                                              (lambda ()
                                                                (let ((d_0
                                                                       (cdr
                                                                        (unwrap
                                                                         v_0))))
                                                                  (let ((p_0
                                                                         (unwrap
                                                                          d_0)))
                                                                    (let ((tst_0
                                                                           (let ((a_0
                                                                                  (car
                                                                                   p_0)))
                                                                             a_0)))
                                                                      (call-with-values
                                                                       (lambda ()
                                                                         (let ((d_1
                                                                                (cdr
                                                                                 p_0)))
                                                                           (let ((p_1
                                                                                  (unwrap
                                                                                   d_1)))
                                                                             (let ((thn_0
                                                                                    (let ((a_0
                                                                                           (car
                                                                                            p_1)))
                                                                                      a_0)))
                                                                               (let ((els_0
                                                                                      (let ((d_2
                                                                                             (cdr
                                                                                              p_1)))
                                                                                        (let ((a_0
                                                                                               (car
                                                                                                (unwrap
                                                                                                 d_2))))
                                                                                          a_0))))
                                                                                 (let ((thn_1
                                                                                        thn_0))
                                                                                   (values
                                                                                    thn_1
                                                                                    els_0)))))))
                                                                       (case-lambda
                                                                        ((thn_0
                                                                          els_0)
                                                                         (let ((tst_1
                                                                                tst_0))
                                                                           (values
                                                                            tst_1
                                                                            thn_0
                                                                            els_0)))
                                                                        (args
                                                                         (raise-binding-result-arity-error
                                                                          2
                                                                          args))))))))
                                                              (case-lambda
                                                               ((tst_0
                                                                 thn_0
                                                                 els_0)
                                                                (let ((app_0
                                                                       (schemify_0
                                                                        add-import!_0
                                                                        allow-inline?_0
                                                                        allow-set!-undefined?_0
                                                                        explicit-unnamed?_0
                                                                        exports_0
                                                                        for-cify?_0
                                                                        for-interp?_0
                                                                        imports_0
                                                                        inline-fuel_0
                                                                        knowns_0
                                                                        mutated_0
                                                                        no-prompt?_0
                                                                        prim-knowns_0
                                                                        primitives_0
                                                                        simples_0
                                                                        unsafe-mode?_0
                                                                        tst_0
                                                                        'fresh)))
                                                                  (let ((app_1
                                                                         (schemify_0
                                                                          add-import!_0
                                                                          allow-inline?_0
                                                                          allow-set!-undefined?_0
                                                                          explicit-unnamed?_0
                                                                          exports_0
                                                                          for-cify?_0
                                                                          for-interp?_0
                                                                          imports_0
                                                                          inline-fuel_0
                                                                          knowns_0
                                                                          mutated_0
                                                                          no-prompt?_0
                                                                          prim-knowns_0
                                                                          primitives_0
                                                                          simples_0
                                                                          unsafe-mode?_0
                                                                          thn_0
                                                                          wcm-state_0)))
                                                                    (list
                                                                     'if
                                                                     app_0
                                                                     app_1
                                                                     (schemify_0
                                                                      add-import!_0
                                                                      allow-inline?_0
                                                                      allow-set!-undefined?_0
                                                                      explicit-unnamed?_0
                                                                      exports_0
                                                                      for-cify?_0
                                                                      for-interp?_0
                                                                      imports_0
                                                                      inline-fuel_0
                                                                      knowns_0
                                                                      mutated_0
                                                                      no-prompt?_0
                                                                      prim-knowns_0
                                                                      primitives_0
                                                                      simples_0
                                                                      unsafe-mode?_0
                                                                      els_0
                                                                      wcm-state_0)))))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 3
                                                                 args))))
                                                             (if (if (eq?
                                                                      'with-continuation-mark
                                                                      hd_0)
                                                                   (let ((a_0
                                                                          (cdr
                                                                           (unwrap
                                                                            v_0))))
                                                                     (let ((p_0
                                                                            (unwrap
                                                                             a_0)))
                                                                       (if (pair?
                                                                            p_0)
                                                                         (let ((a_1
                                                                                (cdr
                                                                                 p_0)))
                                                                           (let ((p_1
                                                                                  (unwrap
                                                                                   a_1)))
                                                                             (if (pair?
                                                                                  p_1)
                                                                               (let ((a_2
                                                                                      (cdr
                                                                                       p_1)))
                                                                                 (let ((p_2
                                                                                        (unwrap
                                                                                         a_2)))
                                                                                   (if (pair?
                                                                                        p_2)
                                                                                     (let ((a_3
                                                                                            (cdr
                                                                                             p_2)))
                                                                                       (let ((app_0
                                                                                              (unwrap
                                                                                               '())))
                                                                                         (eq?
                                                                                          app_0
                                                                                          (unwrap
                                                                                           a_3))))
                                                                                     #f)))
                                                                               #f)))
                                                                         #f)))
                                                                   #f)
                                                               (call-with-values
                                                                (lambda ()
                                                                  (let ((d_0
                                                                         (cdr
                                                                          (unwrap
                                                                           v_0))))
                                                                    (let ((p_0
                                                                           (unwrap
                                                                            d_0)))
                                                                      (let ((key_0
                                                                             (let ((a_0
                                                                                    (car
                                                                                     p_0)))
                                                                               a_0)))
                                                                        (call-with-values
                                                                         (lambda ()
                                                                           (let ((d_1
                                                                                  (cdr
                                                                                   p_0)))
                                                                             (let ((p_1
                                                                                    (unwrap
                                                                                     d_1)))
                                                                               (let ((val_0
                                                                                      (let ((a_0
                                                                                             (car
                                                                                              p_1)))
                                                                                        a_0)))
                                                                                 (let ((body_0
                                                                                        (let ((d_2
                                                                                               (cdr
                                                                                                p_1)))
                                                                                          (let ((a_0
                                                                                                 (car
                                                                                                  (unwrap
                                                                                                   d_2))))
                                                                                            a_0))))
                                                                                   (let ((val_1
                                                                                          val_0))
                                                                                     (values
                                                                                      val_1
                                                                                      body_0)))))))
                                                                         (case-lambda
                                                                          ((val_0
                                                                            body_0)
                                                                           (let ((key_1
                                                                                  key_0))
                                                                             (values
                                                                              key_1
                                                                              val_0
                                                                              body_0)))
                                                                          (args
                                                                           (raise-binding-result-arity-error
                                                                            2
                                                                            args))))))))
                                                                (case-lambda
                                                                 ((key_0
                                                                   val_0
                                                                   body_0)
                                                                  (let ((s-key_0
                                                                         (schemify_0
                                                                          add-import!_0
                                                                          allow-inline?_0
                                                                          allow-set!-undefined?_0
                                                                          explicit-unnamed?_0
                                                                          exports_0
                                                                          for-cify?_0
                                                                          for-interp?_0
                                                                          imports_0
                                                                          inline-fuel_0
                                                                          knowns_0
                                                                          mutated_0
                                                                          no-prompt?_0
                                                                          prim-knowns_0
                                                                          primitives_0
                                                                          simples_0
                                                                          unsafe-mode?_0
                                                                          key_0
                                                                          'fresh)))
                                                                    (let ((s-val_0
                                                                           (schemify_0
                                                                            add-import!_0
                                                                            allow-inline?_0
                                                                            allow-set!-undefined?_0
                                                                            explicit-unnamed?_0
                                                                            exports_0
                                                                            for-cify?_0
                                                                            for-interp?_0
                                                                            imports_0
                                                                            inline-fuel_0
                                                                            knowns_0
                                                                            mutated_0
                                                                            no-prompt?_0
                                                                            prim-knowns_0
                                                                            primitives_0
                                                                            simples_0
                                                                            unsafe-mode?_0
                                                                            val_0
                                                                            'fresh)))
                                                                      (let ((s-body_0
                                                                             (schemify_0
                                                                              add-import!_0
                                                                              allow-inline?_0
                                                                              allow-set!-undefined?_0
                                                                              explicit-unnamed?_0
                                                                              exports_0
                                                                              for-cify?_0
                                                                              for-interp?_0
                                                                              imports_0
                                                                              inline-fuel_0
                                                                              knowns_0
                                                                              mutated_0
                                                                              no-prompt?_0
                                                                              prim-knowns_0
                                                                              primitives_0
                                                                              simples_0
                                                                              unsafe-mode?_0
                                                                              body_0
                                                                              'marked)))
                                                                        (let ((authentic-key?_0
                                                                               (authentic-valued?
                                                                                key_0
                                                                                knowns_0
                                                                                prim-knowns_0
                                                                                imports_0
                                                                                mutated_0)))
                                                                          (if (if authentic-key?_0
                                                                                (simple?.1
                                                                                 #t
                                                                                 #f
                                                                                 s-body_0
                                                                                 prim-knowns_0
                                                                                 knowns_0
                                                                                 imports_0
                                                                                 mutated_0
                                                                                 simples_0)
                                                                                #f)
                                                                            (let ((app_0
                                                                                   (ensure-single-valued
                                                                                    s-key_0
                                                                                    knowns_0
                                                                                    prim-knowns_0
                                                                                    imports_0
                                                                                    mutated_0)))
                                                                              (list
                                                                               'begin
                                                                               app_0
                                                                               (ensure-single-valued
                                                                                s-val_0
                                                                                knowns_0
                                                                                prim-knowns_0
                                                                                imports_0
                                                                                mutated_0)
                                                                               s-body_0))
                                                                            (if for-cify?_0
                                                                              (list
                                                                               'with-continuation-mark
                                                                               s-key_0
                                                                               s-val_0
                                                                               s-body_0)
                                                                              (let ((mode_0
                                                                                     (if (eq?
                                                                                          wcm-state_0
                                                                                          'fresh)
                                                                                       (if authentic-key?_0
                                                                                         'push-authentic
                                                                                         'push)
                                                                                       (if authentic-key?_0
                                                                                         'authentic
                                                                                         'general))))
                                                                                (list
                                                                                 'with-continuation-mark*
                                                                                 mode_0
                                                                                 s-key_0
                                                                                 s-val_0
                                                                                 s-body_0)))))))))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   3
                                                                   args))))
                                                               (if (if (eq?
                                                                        'begin
                                                                        hd_0)
                                                                     (let ((a_0
                                                                            (cdr
                                                                             (unwrap
                                                                              v_0))))
                                                                       (let ((p_0
                                                                              (unwrap
                                                                               a_0)))
                                                                         (if (pair?
                                                                              p_0)
                                                                           (let ((a_1
                                                                                  (cdr
                                                                                   p_0)))
                                                                             (let ((app_0
                                                                                    (unwrap
                                                                                     '())))
                                                                               (eq?
                                                                                app_0
                                                                                (unwrap
                                                                                 a_1))))
                                                                           #f)))
                                                                     #f)
                                                                 (let ((exp_0
                                                                        (let ((d_0
                                                                               (cdr
                                                                                (unwrap
                                                                                 v_0))))
                                                                          (let ((a_0
                                                                                 (car
                                                                                  (unwrap
                                                                                   d_0))))
                                                                            a_0))))
                                                                   (schemify_0
                                                                    add-import!_0
                                                                    allow-inline?_0
                                                                    allow-set!-undefined?_0
                                                                    explicit-unnamed?_0
                                                                    exports_0
                                                                    for-cify?_0
                                                                    for-interp?_0
                                                                    imports_0
                                                                    inline-fuel_0
                                                                    knowns_0
                                                                    mutated_0
                                                                    no-prompt?_0
                                                                    prim-knowns_0
                                                                    primitives_0
                                                                    simples_0
                                                                    unsafe-mode?_0
                                                                    exp_0
                                                                    wcm-state_0))
                                                                 (if (if (eq?
                                                                          'begin
                                                                          hd_0)
                                                                       (let ((a_0
                                                                              (cdr
                                                                               (unwrap
                                                                                v_0))))
                                                                         (wrap-list?
                                                                          a_0))
                                                                       #f)
                                                                   (let ((exps_0
                                                                          (let ((d_0
                                                                                 (cdr
                                                                                  (unwrap
                                                                                   v_0))))
                                                                            (unwrap-list
                                                                             d_0))))
                                                                     (list*
                                                                      'begin
                                                                      (schemify-body_0
                                                                       add-import!_0
                                                                       allow-inline?_0
                                                                       allow-set!-undefined?_0
                                                                       explicit-unnamed?_0
                                                                       exports_0
                                                                       for-cify?_0
                                                                       for-interp?_0
                                                                       imports_0
                                                                       inline-fuel_0
                                                                       knowns_0
                                                                       mutated_0
                                                                       no-prompt?_0
                                                                       prim-knowns_0
                                                                       primitives_0
                                                                       simples_0
                                                                       unsafe-mode?_0
                                                                       exps_0
                                                                       wcm-state_0)))
                                                                   (if (if (eq?
                                                                            'begin0
                                                                            hd_0)
                                                                         (let ((a_0
                                                                                (cdr
                                                                                 (unwrap
                                                                                  v_0))))
                                                                           (let ((p_0
                                                                                  (unwrap
                                                                                   a_0)))
                                                                             (if (pair?
                                                                                  p_0)
                                                                               (let ((a_1
                                                                                      (cdr
                                                                                       p_0)))
                                                                                 (let ((app_0
                                                                                        (unwrap
                                                                                         '())))
                                                                                   (eq?
                                                                                    app_0
                                                                                    (unwrap
                                                                                     a_1))))
                                                                               #f)))
                                                                         #f)
                                                                     (let ((exp_0
                                                                            (let ((d_0
                                                                                   (cdr
                                                                                    (unwrap
                                                                                     v_0))))
                                                                              (let ((a_0
                                                                                     (car
                                                                                      (unwrap
                                                                                       d_0))))
                                                                                a_0))))
                                                                       (schemify_0
                                                                        add-import!_0
                                                                        allow-inline?_0
                                                                        allow-set!-undefined?_0
                                                                        explicit-unnamed?_0
                                                                        exports_0
                                                                        for-cify?_0
                                                                        for-interp?_0
                                                                        imports_0
                                                                        inline-fuel_0
                                                                        knowns_0
                                                                        mutated_0
                                                                        no-prompt?_0
                                                                        prim-knowns_0
                                                                        primitives_0
                                                                        simples_0
                                                                        unsafe-mode?_0
                                                                        exp_0
                                                                        wcm-state_0))
                                                                     (if (if (eq?
                                                                              'begin0
                                                                              hd_0)
                                                                           (let ((a_0
                                                                                  (cdr
                                                                                   (unwrap
                                                                                    v_0))))
                                                                             (let ((p_0
                                                                                    (unwrap
                                                                                     a_0)))
                                                                               (if (pair?
                                                                                    p_0)
                                                                                 (let ((a_1
                                                                                        (cdr
                                                                                         p_0)))
                                                                                   (wrap-list?
                                                                                    a_1))
                                                                                 #f)))
                                                                           #f)
                                                                       (call-with-values
                                                                        (lambda ()
                                                                          (let ((d_0
                                                                                 (cdr
                                                                                  (unwrap
                                                                                   v_0))))
                                                                            (let ((p_0
                                                                                   (unwrap
                                                                                    d_0)))
                                                                              (let ((exp_0
                                                                                     (let ((a_0
                                                                                            (car
                                                                                             p_0)))
                                                                                       a_0)))
                                                                                (let ((exps_0
                                                                                       (let ((d_1
                                                                                              (cdr
                                                                                               p_0)))
                                                                                         (unwrap-list
                                                                                          d_1))))
                                                                                  (let ((exp_1
                                                                                         exp_0))
                                                                                    (values
                                                                                     exp_1
                                                                                     exps_0)))))))
                                                                        (case-lambda
                                                                         ((exp_0
                                                                           exps_0)
                                                                          (let ((app_0
                                                                                 (schemify_0
                                                                                  add-import!_0
                                                                                  allow-inline?_0
                                                                                  allow-set!-undefined?_0
                                                                                  explicit-unnamed?_0
                                                                                  exports_0
                                                                                  for-cify?_0
                                                                                  for-interp?_0
                                                                                  imports_0
                                                                                  inline-fuel_0
                                                                                  knowns_0
                                                                                  mutated_0
                                                                                  no-prompt?_0
                                                                                  prim-knowns_0
                                                                                  primitives_0
                                                                                  simples_0
                                                                                  unsafe-mode?_0
                                                                                  exp_0
                                                                                  'fresh)))
                                                                            (list*
                                                                             'begin0
                                                                             app_0
                                                                             (schemify-body_0
                                                                              add-import!_0
                                                                              allow-inline?_0
                                                                              allow-set!-undefined?_0
                                                                              explicit-unnamed?_0
                                                                              exports_0
                                                                              for-cify?_0
                                                                              for-interp?_0
                                                                              imports_0
                                                                              inline-fuel_0
                                                                              knowns_0
                                                                              mutated_0
                                                                              no-prompt?_0
                                                                              prim-knowns_0
                                                                              primitives_0
                                                                              simples_0
                                                                              unsafe-mode?_0
                                                                              exps_0
                                                                              'fresh))))
                                                                         (args
                                                                          (raise-binding-result-arity-error
                                                                           2
                                                                           args))))
                                                                       (if (if (eq?
                                                                                'set!
                                                                                hd_0)
                                                                             (let ((a_0
                                                                                    (cdr
                                                                                     (unwrap
                                                                                      v_0))))
                                                                               (let ((p_0
                                                                                      (unwrap
                                                                                       a_0)))
                                                                                 (if (pair?
                                                                                      p_0)
                                                                                   (let ((a_1
                                                                                          (cdr
                                                                                           p_0)))
                                                                                     (let ((p_1
                                                                                            (unwrap
                                                                                             a_1)))
                                                                                       (if (pair?
                                                                                            p_1)
                                                                                         (let ((a_2
                                                                                                (cdr
                                                                                                 p_1)))
                                                                                           (let ((app_0
                                                                                                  (unwrap
                                                                                                   '())))
                                                                                             (eq?
                                                                                              app_0
                                                                                              (unwrap
                                                                                               a_2))))
                                                                                         #f)))
                                                                                   #f)))
                                                                             #f)
                                                                         (call-with-values
                                                                          (lambda ()
                                                                            (let ((d_0
                                                                                   (cdr
                                                                                    (unwrap
                                                                                     v_0))))
                                                                              (let ((p_0
                                                                                     (unwrap
                                                                                      d_0)))
                                                                                (let ((id_0
                                                                                       (let ((a_0
                                                                                              (car
                                                                                               p_0)))
                                                                                         a_0)))
                                                                                  (let ((rhs_0
                                                                                         (let ((d_1
                                                                                                (cdr
                                                                                                 p_0)))
                                                                                           (let ((a_0
                                                                                                  (car
                                                                                                   (unwrap
                                                                                                    d_1))))
                                                                                             a_0))))
                                                                                    (let ((id_1
                                                                                           id_0))
                                                                                      (values
                                                                                       id_1
                                                                                       rhs_0)))))))
                                                                          (case-lambda
                                                                           ((id_0
                                                                             rhs_0)
                                                                            (let ((int-id_0
                                                                                   (unwrap
                                                                                    id_0)))
                                                                              (let ((ex_0
                                                                                     (hash-ref
                                                                                      exports_0
                                                                                      int-id_0
                                                                                      #f)))
                                                                                (let ((new-rhs_0
                                                                                       (schemify_0
                                                                                        add-import!_0
                                                                                        allow-inline?_0
                                                                                        allow-set!-undefined?_0
                                                                                        explicit-unnamed?_0
                                                                                        exports_0
                                                                                        for-cify?_0
                                                                                        for-interp?_0
                                                                                        imports_0
                                                                                        inline-fuel_0
                                                                                        knowns_0
                                                                                        mutated_0
                                                                                        no-prompt?_0
                                                                                        prim-knowns_0
                                                                                        primitives_0
                                                                                        simples_0
                                                                                        unsafe-mode?_0
                                                                                        rhs_0
                                                                                        'fresh)))
                                                                                  (let ((state_0
                                                                                         (hash-ref
                                                                                          mutated_0
                                                                                          int-id_0
                                                                                          #f)))
                                                                                    (if ex_0
                                                                                      (let ((set-id_0
                                                                                             (if (if allow-set!-undefined?_0
                                                                                                   allow-set!-undefined?_0
                                                                                                   (not
                                                                                                    (too-early-mutated-state?
                                                                                                     state_0)))
                                                                                               'variable-set!
                                                                                               'variable-set!/check-undefined)))
                                                                                        (list
                                                                                         set-id_0
                                                                                         (export-id
                                                                                          ex_0)
                                                                                         new-rhs_0))
                                                                                      (if (if (too-early-mutated-state?
                                                                                               state_0)
                                                                                            (not
                                                                                             for-cify?_0)
                                                                                            #f)
                                                                                        (let ((tmp_0
                                                                                               (deterministic-gensym
                                                                                                "set")))
                                                                                          (list
                                                                                           'let
                                                                                           (list
                                                                                            (list
                                                                                             tmp_0
                                                                                             new-rhs_0))
                                                                                           (list
                                                                                            'check-not-unsafe-undefined/assign
                                                                                            id_0
                                                                                            (list
                                                                                             'quote
                                                                                             (too-early-mutated-state-name
                                                                                              state_0
                                                                                              int-id_0)))
                                                                                           (list
                                                                                            'set!
                                                                                            id_0
                                                                                            tmp_0)))
                                                                                        (list
                                                                                         'set!
                                                                                         id_0
                                                                                         new-rhs_0))))))))
                                                                           (args
                                                                            (raise-binding-result-arity-error
                                                                             2
                                                                             args))))
                                                                         (if (if (eq?
                                                                                  'variable-reference-constant?
                                                                                  hd_0)
                                                                               (let ((a_0
                                                                                      (cdr
                                                                                       (unwrap
                                                                                        v_0))))
                                                                                 (let ((p_0
                                                                                        (unwrap
                                                                                         a_0)))
                                                                                   (if (pair?
                                                                                        p_0)
                                                                                     (if (let ((a_1
                                                                                                (car
                                                                                                 p_0)))
                                                                                           (let ((p_1
                                                                                                  (unwrap
                                                                                                   a_1)))
                                                                                             (if (pair?
                                                                                                  p_1)
                                                                                               (if (let ((a_2
                                                                                                          (car
                                                                                                           p_1)))
                                                                                                     (let ((app_0
                                                                                                            (unwrap
                                                                                                             '|#%variable-reference|)))
                                                                                                       (eq?
                                                                                                        app_0
                                                                                                        (unwrap
                                                                                                         a_2))))
                                                                                                 (let ((a_2
                                                                                                        (cdr
                                                                                                         p_1)))
                                                                                                   (let ((p_2
                                                                                                          (unwrap
                                                                                                           a_2)))
                                                                                                     (if (pair?
                                                                                                          p_2)
                                                                                                       (let ((a_3
                                                                                                              (cdr
                                                                                                               p_2)))
                                                                                                         (let ((app_0
                                                                                                                (unwrap
                                                                                                                 '())))
                                                                                                           (eq?
                                                                                                            app_0
                                                                                                            (unwrap
                                                                                                             a_3))))
                                                                                                       #f)))
                                                                                                 #f)
                                                                                               #f)))
                                                                                       (let ((a_1
                                                                                              (cdr
                                                                                               p_0)))
                                                                                         (let ((app_0
                                                                                                (unwrap
                                                                                                 '())))
                                                                                           (eq?
                                                                                            app_0
                                                                                            (unwrap
                                                                                             a_1))))
                                                                                       #f)
                                                                                     #f)))
                                                                               #f)
                                                                           (let ((id_0
                                                                                  (let ((d_0
                                                                                         (cdr
                                                                                          (unwrap
                                                                                           v_0))))
                                                                                    (let ((a_0
                                                                                           (car
                                                                                            (unwrap
                                                                                             d_0))))
                                                                                      (let ((d_1
                                                                                             (cdr
                                                                                              (unwrap
                                                                                               a_0))))
                                                                                        (let ((a_1
                                                                                               (car
                                                                                                (unwrap
                                                                                                 d_1))))
                                                                                          a_1))))))
                                                                             (let ((u-id_0
                                                                                    (unwrap
                                                                                     id_0)))
                                                                               (if (hash-ref
                                                                                    mutated_0
                                                                                    u-id_0
                                                                                    #f)
                                                                                 #f
                                                                                 (let ((im_0
                                                                                        (hash-ref
                                                                                         imports_0
                                                                                         u-id_0
                                                                                         #f)))
                                                                                   (if (not
                                                                                        im_0)
                                                                                     #t
                                                                                     (if (known-constant?
                                                                                          (import-lookup
                                                                                           im_0))
                                                                                       #t
                                                                                       (list
                                                                                        'variable-reference-constant?
                                                                                        (schemify_0
                                                                                         add-import!_0
                                                                                         allow-inline?_0
                                                                                         allow-set!-undefined?_0
                                                                                         explicit-unnamed?_0
                                                                                         exports_0
                                                                                         for-cify?_0
                                                                                         for-interp?_0
                                                                                         imports_0
                                                                                         inline-fuel_0
                                                                                         knowns_0
                                                                                         mutated_0
                                                                                         no-prompt?_0
                                                                                         prim-knowns_0
                                                                                         primitives_0
                                                                                         simples_0
                                                                                         unsafe-mode?_0
                                                                                         (list
                                                                                          '|#%variable-reference|
                                                                                          id_0)
                                                                                         'fresh))))))))
                                                                           (if (if (eq?
                                                                                    'variable-reference-from-unsafe?
                                                                                    hd_0)
                                                                                 (let ((a_0
                                                                                        (cdr
                                                                                         (unwrap
                                                                                          v_0))))
                                                                                   (let ((p_0
                                                                                          (unwrap
                                                                                           a_0)))
                                                                                     (if (pair?
                                                                                          p_0)
                                                                                       (if (let ((a_1
                                                                                                  (car
                                                                                                   p_0)))
                                                                                             (let ((p_1
                                                                                                    (unwrap
                                                                                                     a_1)))
                                                                                               (if (pair?
                                                                                                    p_1)
                                                                                                 (if (let ((a_2
                                                                                                            (car
                                                                                                             p_1)))
                                                                                                       (let ((app_0
                                                                                                              (unwrap
                                                                                                               '|#%variable-reference|)))
                                                                                                         (eq?
                                                                                                          app_0
                                                                                                          (unwrap
                                                                                                           a_2))))
                                                                                                   (let ((a_2
                                                                                                          (cdr
                                                                                                           p_1)))
                                                                                                     (let ((app_0
                                                                                                            (unwrap
                                                                                                             '())))
                                                                                                       (eq?
                                                                                                        app_0
                                                                                                        (unwrap
                                                                                                         a_2))))
                                                                                                   #f)
                                                                                                 #f)))
                                                                                         (let ((a_1
                                                                                                (cdr
                                                                                                 p_0)))
                                                                                           (let ((app_0
                                                                                                  (unwrap
                                                                                                   '())))
                                                                                             (eq?
                                                                                              app_0
                                                                                              (unwrap
                                                                                               a_1))))
                                                                                         #f)
                                                                                       #f)))
                                                                                 #f)
                                                                             unsafe-mode?_0
                                                                             (if (if (eq?
                                                                                      '|#%variable-reference|
                                                                                      hd_0)
                                                                                   (let ((a_0
                                                                                          (cdr
                                                                                           (unwrap
                                                                                            v_0))))
                                                                                     (let ((app_0
                                                                                            (unwrap
                                                                                             '())))
                                                                                       (eq?
                                                                                        app_0
                                                                                        (unwrap
                                                                                         a_0))))
                                                                                   #f)
                                                                               'instance-variable-reference
                                                                               (if (if (eq?
                                                                                        '|#%variable-reference|
                                                                                        hd_0)
                                                                                     (let ((a_0
                                                                                            (cdr
                                                                                             (unwrap
                                                                                              v_0))))
                                                                                       (let ((p_0
                                                                                              (unwrap
                                                                                               a_0)))
                                                                                         (if (pair?
                                                                                              p_0)
                                                                                           (let ((a_1
                                                                                                  (cdr
                                                                                                   p_0)))
                                                                                             (let ((app_0
                                                                                                    (unwrap
                                                                                                     '())))
                                                                                               (eq?
                                                                                                app_0
                                                                                                (unwrap
                                                                                                 a_1))))
                                                                                           #f)))
                                                                                     #f)
                                                                                 (let ((id_0
                                                                                        (let ((d_0
                                                                                               (cdr
                                                                                                (unwrap
                                                                                                 v_0))))
                                                                                          (let ((a_0
                                                                                                 (car
                                                                                                  (unwrap
                                                                                                   d_0))))
                                                                                            a_0))))
                                                                                   (let ((u_0
                                                                                          (unwrap
                                                                                           id_0)))
                                                                                     (let ((v_1
                                                                                            (let ((or-part_0
                                                                                                   (let ((ex_0
                                                                                                          (hash-ref
                                                                                                           exports_0
                                                                                                           u_0
                                                                                                           #f)))
                                                                                                     (if ex_0
                                                                                                       (export-id
                                                                                                        ex_0)
                                                                                                       #f))))
                                                                                              (if or-part_0
                                                                                                or-part_0
                                                                                                (let ((im_0
                                                                                                       (hash-ref
                                                                                                        imports_0
                                                                                                        u_0
                                                                                                        #f)))
                                                                                                  (if im_0
                                                                                                    (import-id
                                                                                                     im_0)
                                                                                                    #f))))))
                                                                                       (if v_1
                                                                                         (list
                                                                                          'make-instance-variable-reference
                                                                                          'instance-variable-reference
                                                                                          v_1)
                                                                                         (list
                                                                                          'make-instance-variable-reference
                                                                                          'instance-variable-reference
                                                                                          (list
                                                                                           'quote
                                                                                           (if (hash-ref
                                                                                                mutated_0
                                                                                                u_0
                                                                                                #f)
                                                                                             'mutable
                                                                                             (if (hash-ref
                                                                                                  prim-knowns_0
                                                                                                  u_0
                                                                                                  #f)
                                                                                               u_0
                                                                                               'constant))))))))
                                                                                 (if (if (eq?
                                                                                          'equal?
                                                                                          hd_0)
                                                                                       (let ((a_0
                                                                                              (cdr
                                                                                               (unwrap
                                                                                                v_0))))
                                                                                         (let ((p_0
                                                                                                (unwrap
                                                                                                 a_0)))
                                                                                           (if (pair?
                                                                                                p_0)
                                                                                             (let ((a_1
                                                                                                    (cdr
                                                                                                     p_0)))
                                                                                               (let ((p_1
                                                                                                      (unwrap
                                                                                                       a_1)))
                                                                                                 (if (pair?
                                                                                                      p_1)
                                                                                                   (let ((a_2
                                                                                                          (cdr
                                                                                                           p_1)))
                                                                                                     (let ((app_0
                                                                                                            (unwrap
                                                                                                             '())))
                                                                                                       (eq?
                                                                                                        app_0
                                                                                                        (unwrap
                                                                                                         a_2))))
                                                                                                   #f)))
                                                                                             #f)))
                                                                                       #f)
                                                                                   (call-with-values
                                                                                    (lambda ()
                                                                                      (let ((d_0
                                                                                             (cdr
                                                                                              (unwrap
                                                                                               v_0))))
                                                                                        (let ((p_0
                                                                                               (unwrap
                                                                                                d_0)))
                                                                                          (let ((exp1_0
                                                                                                 (let ((a_0
                                                                                                        (car
                                                                                                         p_0)))
                                                                                                   a_0)))
                                                                                            (let ((exp2_0
                                                                                                   (let ((d_1
                                                                                                          (cdr
                                                                                                           p_0)))
                                                                                                     (let ((a_0
                                                                                                            (car
                                                                                                             (unwrap
                                                                                                              d_1))))
                                                                                                       a_0))))
                                                                                              (let ((exp1_1
                                                                                                     exp1_0))
                                                                                                (values
                                                                                                 exp1_1
                                                                                                 exp2_0)))))))
                                                                                    (case-lambda
                                                                                     ((exp1_0
                                                                                       exp2_0)
                                                                                      (let ((exp1_1
                                                                                             (schemify_0
                                                                                              add-import!_0
                                                                                              allow-inline?_0
                                                                                              allow-set!-undefined?_0
                                                                                              explicit-unnamed?_0
                                                                                              exports_0
                                                                                              for-cify?_0
                                                                                              for-interp?_0
                                                                                              imports_0
                                                                                              inline-fuel_0
                                                                                              knowns_0
                                                                                              mutated_0
                                                                                              no-prompt?_0
                                                                                              prim-knowns_0
                                                                                              primitives_0
                                                                                              simples_0
                                                                                              unsafe-mode?_0
                                                                                              exp1_0
                                                                                              'fresh)))
                                                                                        (let ((exp2_1
                                                                                               (schemify_0
                                                                                                add-import!_0
                                                                                                allow-inline?_0
                                                                                                allow-set!-undefined?_0
                                                                                                explicit-unnamed?_0
                                                                                                exports_0
                                                                                                for-cify?_0
                                                                                                for-interp?_0
                                                                                                imports_0
                                                                                                inline-fuel_0
                                                                                                knowns_0
                                                                                                mutated_0
                                                                                                no-prompt?_0
                                                                                                prim-knowns_0
                                                                                                primitives_0
                                                                                                simples_0
                                                                                                unsafe-mode?_0
                                                                                                exp2_0
                                                                                                'fresh)))
                                                                                          (let ((exp1_2
                                                                                                 exp1_1))
                                                                                            (if (let ((or-part_0
                                                                                                       (equal-implies-eq?
                                                                                                        exp1_2)))
                                                                                                  (if or-part_0
                                                                                                    or-part_0
                                                                                                    (equal-implies-eq?
                                                                                                     exp2_1)))
                                                                                              (list
                                                                                               'eq?
                                                                                               exp1_2
                                                                                               exp2_1)
                                                                                              (if (let ((or-part_0
                                                                                                         (equal-implies-eqv?
                                                                                                          exp1_2)))
                                                                                                    (if or-part_0
                                                                                                      or-part_0
                                                                                                      (equal-implies-eqv?
                                                                                                       exp2_1)))
                                                                                                (list
                                                                                                 'eqv?
                                                                                                 exp1_2
                                                                                                 exp2_1)
                                                                                                (left-to-right/app
                                                                                                 'equal?
                                                                                                 (list
                                                                                                  exp1_2
                                                                                                  exp2_1)
                                                                                                 #t
                                                                                                 for-cify?_0
                                                                                                 prim-knowns_0
                                                                                                 knowns_0
                                                                                                 imports_0
                                                                                                 mutated_0
                                                                                                 simples_0)))))))
                                                                                     (args
                                                                                      (raise-binding-result-arity-error
                                                                                       2
                                                                                       args))))
                                                                                   (if (if (eq?
                                                                                            'call-with-values
                                                                                            hd_0)
                                                                                         (let ((a_0
                                                                                                (cdr
                                                                                                 (unwrap
                                                                                                  v_0))))
                                                                                           (let ((p_0
                                                                                                  (unwrap
                                                                                                   a_0)))
                                                                                             (if (pair?
                                                                                                  p_0)
                                                                                               (let ((a_1
                                                                                                      (cdr
                                                                                                       p_0)))
                                                                                                 (let ((p_1
                                                                                                        (unwrap
                                                                                                         a_1)))
                                                                                                   (if (pair?
                                                                                                        p_1)
                                                                                                     (let ((a_2
                                                                                                            (cdr
                                                                                                             p_1)))
                                                                                                       (let ((app_0
                                                                                                              (unwrap
                                                                                                               '())))
                                                                                                         (eq?
                                                                                                          app_0
                                                                                                          (unwrap
                                                                                                           a_2))))
                                                                                                     #f)))
                                                                                               #f)))
                                                                                         #f)
                                                                                     (call-with-values
                                                                                      (lambda ()
                                                                                        (let ((d_0
                                                                                               (cdr
                                                                                                (unwrap
                                                                                                 v_0))))
                                                                                          (let ((p_0
                                                                                                 (unwrap
                                                                                                  d_0)))
                                                                                            (let ((generator_0
                                                                                                   (let ((a_0
                                                                                                          (car
                                                                                                           p_0)))
                                                                                                     a_0)))
                                                                                              (let ((receiver_0
                                                                                                     (let ((d_1
                                                                                                            (cdr
                                                                                                             p_0)))
                                                                                                       (let ((a_0
                                                                                                              (car
                                                                                                               (unwrap
                                                                                                                d_1))))
                                                                                                         a_0))))
                                                                                                (let ((generator_1
                                                                                                       generator_0))
                                                                                                  (values
                                                                                                   generator_1
                                                                                                   receiver_0)))))))
                                                                                      (case-lambda
                                                                                       ((generator_0
                                                                                         receiver_0)
                                                                                        (if (if (lambda?.1
                                                                                                 #f
                                                                                                 generator_0)
                                                                                              (let ((or-part_0
                                                                                                     (lambda?.1
                                                                                                      #f
                                                                                                      receiver_0)))
                                                                                                (if or-part_0
                                                                                                  or-part_0
                                                                                                  (eq?
                                                                                                   (unwrap
                                                                                                    receiver_0)
                                                                                                   'list)))
                                                                                              #f)
                                                                                          (let ((app_0
                                                                                                 (schemify_0
                                                                                                  add-import!_0
                                                                                                  allow-inline?_0
                                                                                                  allow-set!-undefined?_0
                                                                                                  explicit-unnamed?_0
                                                                                                  exports_0
                                                                                                  for-cify?_0
                                                                                                  for-interp?_0
                                                                                                  imports_0
                                                                                                  inline-fuel_0
                                                                                                  knowns_0
                                                                                                  mutated_0
                                                                                                  no-prompt?_0
                                                                                                  prim-knowns_0
                                                                                                  primitives_0
                                                                                                  simples_0
                                                                                                  unsafe-mode?_0
                                                                                                  generator_0
                                                                                                  'fresh)))
                                                                                            (list
                                                                                             'call-with-values
                                                                                             app_0
                                                                                             (schemify_0
                                                                                              add-import!_0
                                                                                              allow-inline?_0
                                                                                              allow-set!-undefined?_0
                                                                                              explicit-unnamed?_0
                                                                                              exports_0
                                                                                              for-cify?_0
                                                                                              for-interp?_0
                                                                                              imports_0
                                                                                              inline-fuel_0
                                                                                              knowns_0
                                                                                              mutated_0
                                                                                              no-prompt?_0
                                                                                              prim-knowns_0
                                                                                              primitives_0
                                                                                              simples_0
                                                                                              unsafe-mode?_0
                                                                                              receiver_0
                                                                                              'fresh)))
                                                                                          (let ((app_0
                                                                                                 (if for-cify?_0
                                                                                                   'call-with-values
                                                                                                   '|#%call-with-values|)))
                                                                                            (left-to-right/app
                                                                                             app_0
                                                                                             (let ((app_1
                                                                                                    (schemify_0
                                                                                                     add-import!_0
                                                                                                     allow-inline?_0
                                                                                                     allow-set!-undefined?_0
                                                                                                     explicit-unnamed?_0
                                                                                                     exports_0
                                                                                                     for-cify?_0
                                                                                                     for-interp?_0
                                                                                                     imports_0
                                                                                                     inline-fuel_0
                                                                                                     knowns_0
                                                                                                     mutated_0
                                                                                                     no-prompt?_0
                                                                                                     prim-knowns_0
                                                                                                     primitives_0
                                                                                                     simples_0
                                                                                                     unsafe-mode?_0
                                                                                                     generator_0
                                                                                                     'fresh)))
                                                                                               (list
                                                                                                app_1
                                                                                                (schemify_0
                                                                                                 add-import!_0
                                                                                                 allow-inline?_0
                                                                                                 allow-set!-undefined?_0
                                                                                                 explicit-unnamed?_0
                                                                                                 exports_0
                                                                                                 for-cify?_0
                                                                                                 for-interp?_0
                                                                                                 imports_0
                                                                                                 inline-fuel_0
                                                                                                 knowns_0
                                                                                                 mutated_0
                                                                                                 no-prompt?_0
                                                                                                 prim-knowns_0
                                                                                                 primitives_0
                                                                                                 simples_0
                                                                                                 unsafe-mode?_0
                                                                                                 receiver_0
                                                                                                 'fresh)))
                                                                                             #t
                                                                                             for-cify?_0
                                                                                             prim-knowns_0
                                                                                             knowns_0
                                                                                             imports_0
                                                                                             mutated_0
                                                                                             simples_0))))
                                                                                       (args
                                                                                        (raise-binding-result-arity-error
                                                                                         2
                                                                                         args))))
                                                                                     (if (if (eq?
                                                                                              'single-flonum-available?
                                                                                              hd_0)
                                                                                           (let ((a_0
                                                                                                  (cdr
                                                                                                   (unwrap
                                                                                                    v_0))))
                                                                                             (let ((app_0
                                                                                                    (unwrap
                                                                                                     '())))
                                                                                               (eq?
                                                                                                app_0
                                                                                                (unwrap
                                                                                                 a_0))))
                                                                                           #f)
                                                                                       for-cify?_0
                                                                                       (if (let ((p_0
                                                                                                  (unwrap
                                                                                                   v_0)))
                                                                                             (if (pair?
                                                                                                  p_0)
                                                                                               (if (let ((a_0
                                                                                                          (car
                                                                                                           p_0)))
                                                                                                     (let ((p_1
                                                                                                            (unwrap
                                                                                                             a_0)))
                                                                                                       (if (pair?
                                                                                                            p_1)
                                                                                                         (if (let ((a_1
                                                                                                                    (car
                                                                                                                     p_1)))
                                                                                                               (let ((app_0
                                                                                                                      (unwrap
                                                                                                                       'letrec-values)))
                                                                                                                 (eq?
                                                                                                                  app_0
                                                                                                                  (unwrap
                                                                                                                   a_1))))
                                                                                                           (let ((a_1
                                                                                                                  (cdr
                                                                                                                   p_1)))
                                                                                                             (let ((p_2
                                                                                                                    (unwrap
                                                                                                                     a_1)))
                                                                                                               (if (pair?
                                                                                                                    p_2)
                                                                                                                 (let ((a_2
                                                                                                                        (cdr
                                                                                                                         p_2)))
                                                                                                                   (let ((p_3
                                                                                                                          (unwrap
                                                                                                                           a_2)))
                                                                                                                     (if (pair?
                                                                                                                          p_3)
                                                                                                                       (let ((a_3
                                                                                                                              (cdr
                                                                                                                               p_3)))
                                                                                                                         (let ((app_0
                                                                                                                                (unwrap
                                                                                                                                 '())))
                                                                                                                           (eq?
                                                                                                                            app_0
                                                                                                                            (unwrap
                                                                                                                             a_3))))
                                                                                                                       #f)))
                                                                                                                 #f)))
                                                                                                           #f)
                                                                                                         #f)))
                                                                                                 (let ((a_0
                                                                                                        (cdr
                                                                                                         p_0)))
                                                                                                   (wrap-list?
                                                                                                    a_0))
                                                                                                 #f)
                                                                                               #f))
                                                                                         (call-with-values
                                                                                          (lambda ()
                                                                                            (let ((p_0
                                                                                                   (unwrap
                                                                                                    v_0)))
                                                                                              (call-with-values
                                                                                               (lambda ()
                                                                                                 (let ((a_0
                                                                                                        (car
                                                                                                         p_0)))
                                                                                                   (let ((d_0
                                                                                                          (cdr
                                                                                                           (unwrap
                                                                                                            a_0))))
                                                                                                     (let ((p_1
                                                                                                            (unwrap
                                                                                                             d_0)))
                                                                                                       (let ((binds_0
                                                                                                              (let ((a_1
                                                                                                                     (car
                                                                                                                      p_1)))
                                                                                                                a_1)))
                                                                                                         (let ((rator_0
                                                                                                                (let ((d_1
                                                                                                                       (cdr
                                                                                                                        p_1)))
                                                                                                                  (let ((a_1
                                                                                                                         (car
                                                                                                                          (unwrap
                                                                                                                           d_1))))
                                                                                                                    a_1))))
                                                                                                           (let ((binds_1
                                                                                                                  binds_0))
                                                                                                             (values
                                                                                                              binds_1
                                                                                                              rator_0))))))))
                                                                                               (case-lambda
                                                                                                ((binds_0
                                                                                                  rator_0)
                                                                                                 (let ((rands_0
                                                                                                        (let ((d_0
                                                                                                               (cdr
                                                                                                                p_0)))
                                                                                                          (unwrap-list
                                                                                                           d_0))))
                                                                                                   (let ((binds_1
                                                                                                          binds_0)
                                                                                                         (rator_1
                                                                                                          rator_0))
                                                                                                     (values
                                                                                                      binds_1
                                                                                                      rator_1
                                                                                                      rands_0))))
                                                                                                (args
                                                                                                 (raise-binding-result-arity-error
                                                                                                  2
                                                                                                  args))))))
                                                                                          (case-lambda
                                                                                           ((binds_0
                                                                                             rator_0
                                                                                             rands_0)
                                                                                            (schemify_0
                                                                                             add-import!_0
                                                                                             allow-inline?_0
                                                                                             allow-set!-undefined?_0
                                                                                             explicit-unnamed?_0
                                                                                             exports_0
                                                                                             for-cify?_0
                                                                                             for-interp?_0
                                                                                             imports_0
                                                                                             inline-fuel_0
                                                                                             knowns_0
                                                                                             mutated_0
                                                                                             no-prompt?_0
                                                                                             prim-knowns_0
                                                                                             primitives_0
                                                                                             simples_0
                                                                                             unsafe-mode?_0
                                                                                             (list
                                                                                              'letrec-values
                                                                                              binds_0
                                                                                              (list*
                                                                                               rator_0
                                                                                               rands_0))
                                                                                             wcm-state_0))
                                                                                           (args
                                                                                            (raise-binding-result-arity-error
                                                                                             3
                                                                                             args))))
                                                                                         (if (let ((p_0
                                                                                                    (unwrap
                                                                                                     v_0)))
                                                                                               (if (pair?
                                                                                                    p_0)
                                                                                                 (let ((a_0
                                                                                                        (cdr
                                                                                                         p_0)))
                                                                                                   (wrap-list?
                                                                                                    a_0))
                                                                                                 #f))
                                                                                           (call-with-values
                                                                                            (lambda ()
                                                                                              (let ((p_0
                                                                                                     (unwrap
                                                                                                      v_0)))
                                                                                                (let ((rator_0
                                                                                                       (let ((a_0
                                                                                                              (car
                                                                                                               p_0)))
                                                                                                         a_0)))
                                                                                                  (let ((exps_0
                                                                                                         (let ((d_0
                                                                                                                (cdr
                                                                                                                 p_0)))
                                                                                                           (unwrap-list
                                                                                                            d_0))))
                                                                                                    (let ((rator_1
                                                                                                           rator_0))
                                                                                                      (values
                                                                                                       rator_1
                                                                                                       exps_0))))))
                                                                                            (case-lambda
                                                                                             ((rator_0
                                                                                               exps_0)
                                                                                              (let ((or-part_0
                                                                                                     (left-left-lambda-convert_0
                                                                                                      add-import!_0
                                                                                                      allow-inline?_0
                                                                                                      allow-set!-undefined?_0
                                                                                                      explicit-unnamed?_0
                                                                                                      exports_0
                                                                                                      exps_0
                                                                                                      for-cify?_0
                                                                                                      for-interp?_0
                                                                                                      imports_0
                                                                                                      knowns_0
                                                                                                      mutated_0
                                                                                                      no-prompt?_0
                                                                                                      prim-knowns_0
                                                                                                      primitives_0
                                                                                                      simples_0
                                                                                                      unsafe-mode?_0
                                                                                                      wcm-state_0
                                                                                                      rator_0
                                                                                                      inline-fuel_0)))
                                                                                                (if or-part_0
                                                                                                  or-part_0
                                                                                                  (let ((or-part_1
                                                                                                         (if (positive?
                                                                                                              inline-fuel_0)
                                                                                                           (inline-rator_0
                                                                                                            add-import!_0
                                                                                                            allow-inline?_0
                                                                                                            allow-set!-undefined?_0
                                                                                                            explicit-unnamed?_0
                                                                                                            exports_0
                                                                                                            exps_0
                                                                                                            for-cify?_0
                                                                                                            for-interp?_0
                                                                                                            imports_0
                                                                                                            inline-fuel_0
                                                                                                            knowns_0
                                                                                                            mutated_0
                                                                                                            no-prompt?_0
                                                                                                            prim-knowns_0
                                                                                                            primitives_0
                                                                                                            rator_0
                                                                                                            simples_0
                                                                                                            unsafe-mode?_0
                                                                                                            wcm-state_0)
                                                                                                           #f)))
                                                                                                    (if or-part_1
                                                                                                      or-part_1
                                                                                                      (let ((s-rator_0
                                                                                                             (schemify_0
                                                                                                              add-import!_0
                                                                                                              allow-inline?_0
                                                                                                              allow-set!-undefined?_0
                                                                                                              explicit-unnamed?_0
                                                                                                              exports_0
                                                                                                              for-cify?_0
                                                                                                              for-interp?_0
                                                                                                              imports_0
                                                                                                              inline-fuel_0
                                                                                                              knowns_0
                                                                                                              mutated_0
                                                                                                              no-prompt?_0
                                                                                                              prim-knowns_0
                                                                                                              primitives_0
                                                                                                              simples_0
                                                                                                              unsafe-mode?_0
                                                                                                              rator_0
                                                                                                              'fresh)))
                                                                                                        (let ((args_0
                                                                                                               (schemify-body_0
                                                                                                                add-import!_0
                                                                                                                allow-inline?_0
                                                                                                                allow-set!-undefined?_0
                                                                                                                explicit-unnamed?_0
                                                                                                                exports_0
                                                                                                                for-cify?_0
                                                                                                                for-interp?_0
                                                                                                                imports_0
                                                                                                                inline-fuel_0
                                                                                                                knowns_0
                                                                                                                mutated_0
                                                                                                                no-prompt?_0
                                                                                                                prim-knowns_0
                                                                                                                primitives_0
                                                                                                                simples_0
                                                                                                                unsafe-mode?_0
                                                                                                                exps_0
                                                                                                                'fresh)))
                                                                                                          (let ((u-rator_0
                                                                                                                 (unwrap
                                                                                                                  rator_0)))
                                                                                                            (let ((args_1
                                                                                                                   args_0)
                                                                                                                  (s-rator_1
                                                                                                                   s-rator_0))
                                                                                                              (call-with-values
                                                                                                               (lambda ()
                                                                                                                 (find-known+import
                                                                                                                  u-rator_0
                                                                                                                  prim-knowns_0
                                                                                                                  knowns_0
                                                                                                                  imports_0
                                                                                                                  mutated_0))
                                                                                                               (case-lambda
                                                                                                                ((k_0
                                                                                                                  im_0)
                                                                                                                 (let ((c5_0
                                                                                                                        (let ((or-part_2
                                                                                                                               (if (eq?
                                                                                                                                    rator_0
                                                                                                                                    'ptr-ref)
                                                                                                                                 (inline-ptr-ref
                                                                                                                                  args_1)
                                                                                                                                 #f)))
                                                                                                                          (if or-part_2
                                                                                                                            or-part_2
                                                                                                                            (if (eq?
                                                                                                                                 rator_0
                                                                                                                                 'ptr-set!)
                                                                                                                              (inline-ptr-set
                                                                                                                               args_1)
                                                                                                                              #f)))))
                                                                                                                   (if c5_0
                                                                                                                     (let ((app_0
                                                                                                                            (car
                                                                                                                             c5_0)))
                                                                                                                       (left-to-right/app
                                                                                                                        app_0
                                                                                                                        (cdr
                                                                                                                         c5_0)
                                                                                                                        #t
                                                                                                                        for-cify?_0
                                                                                                                        prim-knowns_0
                                                                                                                        knowns_0
                                                                                                                        imports_0
                                                                                                                        mutated_0
                                                                                                                        simples_0))
                                                                                                                     (let ((c4_0
                                                                                                                            (if (not
                                                                                                                                 for-cify?_0)
                                                                                                                              (if (known-struct-predicate?
                                                                                                                                   k_0)
                                                                                                                                (inline-struct-predicate_0
                                                                                                                                 add-import!_0
                                                                                                                                 allow-inline?_0
                                                                                                                                 allow-set!-undefined?_0
                                                                                                                                 explicit-unnamed?_0
                                                                                                                                 exports_0
                                                                                                                                 for-cify?_0
                                                                                                                                 for-interp?_0
                                                                                                                                 imports_0
                                                                                                                                 inline-fuel_0
                                                                                                                                 knowns_0
                                                                                                                                 mutated_0
                                                                                                                                 no-prompt?_0
                                                                                                                                 prim-knowns_0
                                                                                                                                 primitives_0
                                                                                                                                 simples_0
                                                                                                                                 unsafe-mode?_0
                                                                                                                                 k_0
                                                                                                                                 s-rator_1
                                                                                                                                 im_0
                                                                                                                                 args_1)
                                                                                                                                #f)
                                                                                                                              #f)))
                                                                                                                       (if c4_0
                                                                                                                         c4_0
                                                                                                                         (let ((c3_0
                                                                                                                                (if (not
                                                                                                                                     for-cify?_0)
                                                                                                                                  (if (known-field-accessor?
                                                                                                                                       k_0)
                                                                                                                                    (inline-field-access_0
                                                                                                                                     add-import!_0
                                                                                                                                     allow-inline?_0
                                                                                                                                     allow-set!-undefined?_0
                                                                                                                                     explicit-unnamed?_0
                                                                                                                                     exports_0
                                                                                                                                     for-cify?_0
                                                                                                                                     for-interp?_0
                                                                                                                                     imports_0
                                                                                                                                     inline-fuel_0
                                                                                                                                     knowns_0
                                                                                                                                     mutated_0
                                                                                                                                     no-prompt?_0
                                                                                                                                     prim-knowns_0
                                                                                                                                     primitives_0
                                                                                                                                     simples_0
                                                                                                                                     unsafe-mode?_0
                                                                                                                                     k_0
                                                                                                                                     s-rator_1
                                                                                                                                     im_0
                                                                                                                                     args_1)
                                                                                                                                    #f)
                                                                                                                                  #f)))
                                                                                                                           (if c3_0
                                                                                                                             c3_0
                                                                                                                             (let ((c2_0
                                                                                                                                    (if (not
                                                                                                                                         for-cify?_0)
                                                                                                                                      (if (known-field-mutator?
                                                                                                                                           k_0)
                                                                                                                                        (inline-field-mutate_0
                                                                                                                                         add-import!_0
                                                                                                                                         allow-inline?_0
                                                                                                                                         allow-set!-undefined?_0
                                                                                                                                         explicit-unnamed?_0
                                                                                                                                         exports_0
                                                                                                                                         for-cify?_0
                                                                                                                                         for-interp?_0
                                                                                                                                         imports_0
                                                                                                                                         inline-fuel_0
                                                                                                                                         knowns_0
                                                                                                                                         mutated_0
                                                                                                                                         no-prompt?_0
                                                                                                                                         prim-knowns_0
                                                                                                                                         primitives_0
                                                                                                                                         simples_0
                                                                                                                                         unsafe-mode?_0
                                                                                                                                         k_0
                                                                                                                                         s-rator_1
                                                                                                                                         im_0
                                                                                                                                         args_1)
                                                                                                                                        #f)
                                                                                                                                      #f)))
                                                                                                                               (if c2_0
                                                                                                                                 c2_0
                                                                                                                                 (if (if unsafe-mode?_0
                                                                                                                                       (known-procedure/has-unsafe?
                                                                                                                                        k_0)
                                                                                                                                       #f)
                                                                                                                                   (left-to-right/app
                                                                                                                                    (known-procedure/has-unsafe-alternate
                                                                                                                                     k_0)
                                                                                                                                    args_1
                                                                                                                                    #t
                                                                                                                                    for-cify?_0
                                                                                                                                    prim-knowns_0
                                                                                                                                    knowns_0
                                                                                                                                    imports_0
                                                                                                                                    mutated_0
                                                                                                                                    simples_0)
                                                                                                                                   (let ((or-part_2
                                                                                                                                          (known-procedure?
                                                                                                                                           k_0)))
                                                                                                                                     (let ((plain-app?_0
                                                                                                                                            (if or-part_2
                                                                                                                                              or-part_2
                                                                                                                                              (lambda?.1
                                                                                                                                               #f
                                                                                                                                               rator_0))))
                                                                                                                                       (left-to-right/app
                                                                                                                                        s-rator_1
                                                                                                                                        args_1
                                                                                                                                        plain-app?_0
                                                                                                                                        for-cify?_0
                                                                                                                                        prim-knowns_0
                                                                                                                                        knowns_0
                                                                                                                                        imports_0
                                                                                                                                        mutated_0
                                                                                                                                        simples_0)))))))))))))
                                                                                                                (args
                                                                                                                 (raise-binding-result-arity-error
                                                                                                                  2
                                                                                                                  args)))))))))))))
                                                                                             (args
                                                                                              (raise-binding-result-arity-error
                                                                                               2
                                                                                               args))))
                                                                                           (let ((u-v_0
                                                                                                  (unwrap
                                                                                                   v_0)))
                                                                                             (if (not
                                                                                                  (symbol?
                                                                                                   u-v_0))
                                                                                               v_0
                                                                                               (if (eq?
                                                                                                    u-v_0
                                                                                                    'call-with-values)
                                                                                                 '|#%call-with-values|
                                                                                                 (let ((state_0
                                                                                                        (hash-ref
                                                                                                         mutated_0
                                                                                                         u-v_0
                                                                                                         #f)))
                                                                                                   (let ((c8_0
                                                                                                          (if (via-variable-mutated-state?
                                                                                                               state_0)
                                                                                                            (hash-ref
                                                                                                             exports_0
                                                                                                             u-v_0
                                                                                                             #f)
                                                                                                            #f)))
                                                                                                     (if c8_0
                                                                                                       (if (too-early-mutated-state?
                                                                                                            state_0)
                                                                                                         (list
                                                                                                          'variable-ref
                                                                                                          (export-id
                                                                                                           c8_0))
                                                                                                         (list
                                                                                                          'variable-ref/no-check
                                                                                                          (export-id
                                                                                                           c8_0)))
                                                                                                       (let ((c7_0
                                                                                                              (hash-ref
                                                                                                               imports_0
                                                                                                               u-v_0
                                                                                                               #f)))
                                                                                                         (if c7_0
                                                                                                           (let ((k_0
                                                                                                                  (import-lookup
                                                                                                                   c7_0)))
                                                                                                             (if (known-constant?
                                                                                                                  k_0)
                                                                                                               (if (known-literal?
                                                                                                                    k_0)
                                                                                                                 (wrap-literal
                                                                                                                  (known-literal-value
                                                                                                                   k_0))
                                                                                                                 (if (if (known-copy?
                                                                                                                          k_0)
                                                                                                                       (hash-ref
                                                                                                                        prim-knowns_0
                                                                                                                        (known-copy-id
                                                                                                                         k_0)
                                                                                                                        #f)
                                                                                                                       #f)
                                                                                                                   (known-copy-id
                                                                                                                    k_0)
                                                                                                                   (import-id
                                                                                                                    c7_0)))
                                                                                                               (list
                                                                                                                'variable-ref/no-check
                                                                                                                (import-id
                                                                                                                 c7_0))))
                                                                                                           (let ((c6_0
                                                                                                                  (hash-ref
                                                                                                                   knowns_0
                                                                                                                   u-v_0
                                                                                                                   #f)))
                                                                                                             (if c6_0
                                                                                                               (if (if (known-copy?
                                                                                                                        c6_0)
                                                                                                                     (simple-mutated-state?
                                                                                                                      (hash-ref
                                                                                                                       mutated_0
                                                                                                                       u-v_0
                                                                                                                       #f))
                                                                                                                     #f)
                                                                                                                 (schemify_0
                                                                                                                  add-import!_0
                                                                                                                  allow-inline?_0
                                                                                                                  allow-set!-undefined?_0
                                                                                                                  explicit-unnamed?_0
                                                                                                                  exports_0
                                                                                                                  for-cify?_0
                                                                                                                  for-interp?_0
                                                                                                                  imports_0
                                                                                                                  inline-fuel_0
                                                                                                                  knowns_0
                                                                                                                  mutated_0
                                                                                                                  no-prompt?_0
                                                                                                                  prim-knowns_0
                                                                                                                  primitives_0
                                                                                                                  simples_0
                                                                                                                  unsafe-mode?_0
                                                                                                                  (known-copy-id
                                                                                                                   c6_0)
                                                                                                                  wcm-state_0)
                                                                                                                 v_0)
                                                                                                               (if (if (too-early-mutated-state?
                                                                                                                        state_0)
                                                                                                                     (not
                                                                                                                      for-cify?_0)
                                                                                                                     #f)
                                                                                                                 (list
                                                                                                                  'check-not-unsafe-undefined
                                                                                                                  v_0
                                                                                                                  (list
                                                                                                                   'quote
                                                                                                                   (too-early-mutated-state-name
                                                                                                                    state_0
                                                                                                                    u-v_0)))
                                                                                                                 v_0)))))))))))))))))))))))))))))))))))))))))))))))
                   (optimize
                    s-v_0
                    prim-knowns_0
                    primitives_0
                    knowns_0
                    imports_0
                    mutated_0))))))
           (wrap-tmp_0
            (|#%name|
             wrap-tmp
             (lambda (tmp_0 e_0 body_0)
               (begin
                 (if (eq? tmp_0 e_0)
                   body_0
                   (list 'let (list (list tmp_0 e_0)) body_0)))))))
    (lambda (v_0
             prim-knowns_0
             primitives_0
             knowns_0
             mutated_0
             imports_0
             exports_0
             simples_0
             allow-set!-undefined?_0
             add-import!_0
             for-cify?_0
             for-interp?_0
             unsafe-mode?_0
             allow-inline?_0
             no-prompt?_0
             explicit-unnamed?_0
             wcm-state_0)
      (schemify/knowns_0
       add-import!_0
       allow-inline?_0
       allow-set!-undefined?_0
       explicit-unnamed?_0
       exports_0
       for-cify?_0
       for-interp?_0
       imports_0
       mutated_0
       no-prompt?_0
       prim-knowns_0
       primitives_0
       simples_0
       unsafe-mode?_0
       knowns_0
       8
       wcm-state_0
       v_0))))
(define struct:liftable
  (make-record-type-descriptor* 'liftable #f #f #f #f 3 7))
(define effect3996
  (struct-type-install-properties!
   struct:liftable
   'liftable
   3
   0
   #f
   null
   (current-inspector)
   #f
   '(0)
   #f
   'liftable))
(define liftable1.1
  (|#%name|
   liftable
   (record-constructor
    (make-record-constructor-descriptor struct:liftable #f #f))))
(define liftable?3995 (|#%name| liftable? (record-predicate struct:liftable)))
(define liftable?
  (|#%name|
   liftable?
   (lambda (v)
     (if (liftable?3995 v)
       #t
       ($value
        (if (impersonator? v) (liftable?3995 (impersonator-val v)) #f))))))
(define liftable-expr3997
  (|#%name| liftable-expr (record-accessor struct:liftable 0)))
(define liftable-expr
  (|#%name|
   liftable-expr
   (lambda (s)
     (if (liftable?3995 s)
       (liftable-expr3997 s)
       ($value
        (impersonate-ref
         liftable-expr3997
         struct:liftable
         0
         s
         'liftable
         'expr))))))
(define liftable-frees3998
  (|#%name| liftable-frees (record-accessor struct:liftable 1)))
(define liftable-frees
  (|#%name|
   liftable-frees
   (lambda (s)
     (if (liftable?3995 s)
       (liftable-frees3998 s)
       ($value
        (impersonate-ref
         liftable-frees3998
         struct:liftable
         1
         s
         'liftable
         'frees))))))
(define liftable-binds3999
  (|#%name| liftable-binds (record-accessor struct:liftable 2)))
(define liftable-binds
  (|#%name|
   liftable-binds
   (lambda (s)
     (if (liftable?3995 s)
       (liftable-binds3999 s)
       ($value
        (impersonate-ref
         liftable-binds3999
         struct:liftable
         2
         s
         'liftable
         'binds))))))
(define set-liftable-frees!4000
  (|#%name| set-liftable-frees! (record-mutator struct:liftable 1)))
(define set-liftable-frees!
  (|#%name|
   set-liftable-frees!
   (lambda (s v)
     (if (liftable?3995 s)
       (set-liftable-frees!4000 s v)
       ($value
        (impersonate-set!
         set-liftable-frees!4000
         struct:liftable
         1
         1
         s
         v
         'liftable
         'frees))))))
(define set-liftable-binds!4001
  (|#%name| set-liftable-binds! (record-mutator struct:liftable 2)))
(define set-liftable-binds!
  (|#%name|
   set-liftable-binds!
   (lambda (s v)
     (if (liftable?3995 s)
       (set-liftable-binds!4001 s v)
       ($value
        (impersonate-set!
         set-liftable-binds!4001
         struct:liftable
         2
         2
         s
         v
         'liftable
         'binds))))))
(define effect4002
  (begin
    (register-struct-constructor! liftable1.1)
    (register-struct-predicate! liftable?)
    (register-struct-field-accessor! liftable-expr struct:liftable 0)
    (register-struct-field-accessor! liftable-frees struct:liftable 1)
    (register-struct-field-accessor! liftable-binds struct:liftable 2)
    (register-struct-field-mutator! set-liftable-frees! struct:liftable 1)
    (register-struct-field-mutator! set-liftable-binds! struct:liftable 2)
    (void)))
(define struct:indirected
  (make-record-type-descriptor* 'indirected #f #f #f #f 1 1))
(define effect4004
  (struct-type-install-properties!
   struct:indirected
   'indirected
   1
   0
   #f
   null
   (current-inspector)
   #f
   '()
   #f
   'indirected))
(define indirected2.1
  (|#%name|
   indirected
   (record-constructor
    (make-record-constructor-descriptor struct:indirected #f #f))))
(define indirected?4003
  (|#%name| indirected? (record-predicate struct:indirected)))
(define indirected?
  (|#%name|
   indirected?
   (lambda (v)
     (if (indirected?4003 v)
       #t
       ($value
        (if (impersonator? v) (indirected?4003 (impersonator-val v)) #f))))))
(define indirected-check?4005
  (|#%name| indirected-check? (record-accessor struct:indirected 0)))
(define indirected-check?
  (|#%name|
   indirected-check?
   (lambda (s)
     (if (indirected?4003 s)
       (indirected-check?4005 s)
       ($value
        (impersonate-ref
         indirected-check?4005
         struct:indirected
         0
         s
         'indirected
         'check?))))))
(define set-indirected-check?!4006
  (|#%name| set-indirected-check?! (record-mutator struct:indirected 0)))
(define set-indirected-check?!
  (|#%name|
   set-indirected-check?!
   (lambda (s v)
     (if (indirected?4003 s)
       (set-indirected-check?!4006 s v)
       ($value
        (impersonate-set!
         set-indirected-check?!4006
         struct:indirected
         0
         0
         s
         v
         'indirected
         'check?))))))
(define effect4007
  (begin
    (register-struct-constructor! indirected2.1)
    (register-struct-predicate! indirected?)
    (register-struct-field-accessor! indirected-check? struct:indirected 0)
    (register-struct-field-mutator! set-indirected-check?! struct:indirected 0)
    (void)))
(define empty-frees+binds (cons hash2610 hash2610))
(define lift-in-schemified-linklet
  (let ((lift-in-schemified-linklet_0
         (letrec ((loop_0
                   (|#%name|
                    loop
                    (lambda (leave-loops-intact?5_0 v_0)
                      (begin
                        (let ((hd_0
                               (let ((p_0 (unwrap v_0)))
                                 (if (pair? p_0) (unwrap (car p_0)) #f))))
                          (if (if (eq? 'lambda hd_0)
                                (let ((a_0 (cdr (unwrap v_0))))
                                  (let ((p_0 (unwrap a_0)))
                                    (if (pair? p_0) #t #f)))
                                #f)
                            (call-with-values
                             (lambda ()
                               (let ((d_0 (cdr (unwrap v_0))))
                                 (let ((p_0 (unwrap d_0)))
                                   (let ((args_0 (let ((a_0 (car p_0))) a_0)))
                                     (let ((body_0
                                            (let ((d_1 (cdr p_0))) d_1)))
                                       (let ((args_1 args_0))
                                         (values args_1 body_0)))))))
                             (case-lambda
                              ((args_0 body_0)
                               (let ((new-body_0
                                      (lift-in-schemified-body
                                       body_0
                                       leave-loops-intact?5_0)))
                                 (if (begin
                                       (letrec*
                                        ((for-loop_0
                                          (|#%name|
                                           for-loop
                                           (lambda (result_0 lst_0 lst_1)
                                             (begin
                                               (if (if (pair? lst_0)
                                                     (pair? lst_1)
                                                     #f)
                                                 (let ((old_0
                                                        (unsafe-car lst_0)))
                                                   (let ((rest_0
                                                          (unsafe-cdr lst_0)))
                                                     (let ((new_0
                                                            (unsafe-car
                                                             lst_1)))
                                                       (let ((rest_1
                                                              (unsafe-cdr
                                                               lst_1)))
                                                         (let ((result_1
                                                                (eq?
                                                                 old_0
                                                                 new_0)))
                                                           (let ((result_2
                                                                  (values
                                                                   result_1)))
                                                             (if (if (not
                                                                      (let ((x_0
                                                                             (list
                                                                              old_0)))
                                                                        (not
                                                                         result_2)))
                                                                   (if (not
                                                                        (let ((x_0
                                                                               (list
                                                                                new_0)))
                                                                          (not
                                                                           result_2)))
                                                                     #t
                                                                     #f)
                                                                   #f)
                                                               (for-loop_0
                                                                result_2
                                                                rest_0
                                                                rest_1)
                                                               result_2)))))))
                                                 result_0))))))
                                        (for-loop_0 #t body_0 new-body_0)))
                                   v_0
                                   (list* 'lambda args_0 new-body_0))))
                              (args
                               (raise-binding-result-arity-error 2 args))))
                            (if (if (eq? 'let* hd_0)
                                  (let ((a_0 (cdr (unwrap v_0))))
                                    (let ((p_0 (unwrap a_0)))
                                      (if (pair? p_0)
                                        (let ((a_1 (cdr p_0)))
                                          (let ((p_1 (unwrap a_1)))
                                            (if (pair? p_1)
                                              (let ((a_2 (cdr p_1)))
                                                (let ((app_0 (unwrap '())))
                                                  (eq? app_0 (unwrap a_2))))
                                              #f)))
                                        #f)))
                                  #f)
                              (call-with-values
                               (lambda ()
                                 (let ((d_0 (cdr (unwrap v_0))))
                                   (let ((p_0 (unwrap d_0)))
                                     (let ((bindings_0
                                            (let ((a_0 (car p_0))) a_0)))
                                       (let ((body_0
                                              (let ((d_1 (cdr p_0)))
                                                (let ((a_0 (car (unwrap d_1))))
                                                  a_0))))
                                         (let ((bindings_1 bindings_0))
                                           (values bindings_1 body_0)))))))
                               (case-lambda
                                ((bindings_0 body_0)
                                 (let ((new-body_0
                                        (loop_0
                                         leave-loops-intact?5_0
                                         body_0)))
                                   (if (eq? body_0 new-body_0)
                                     v_0
                                     (list 'let* bindings_0 new-body_0))))
                                (args
                                 (raise-binding-result-arity-error 2 args))))
                              (error 'match "failed ~e" v_0)))))))))
           (|#%name|
            lift-in-schemified-linklet
            (lambda (v6_0 leave-loops-intact?5_0)
              (begin (loop_0 leave-loops-intact?5_0 v6_0)))))))
    (case-lambda
     ((v_0) (lift-in-schemified-linklet_0 v_0 #f))
     ((v_0 leave-loops-intact?5_0)
      (lift-in-schemified-linklet_0 v_0 leave-loops-intact?5_0)))))
(define lift-in-schemified-body
  (let ((lift-in-schemified-body_0
         (|#%name|
          lift-in-schemified-body
          (lambda (body8_0 leave-loops-intact?7_0)
            (begin
              (reverse$1
               (begin
                 (letrec*
                  ((for-loop_0
                    (|#%name|
                     for-loop
                     (lambda (fold-var_0 lst_0)
                       (begin
                         (if (pair? lst_0)
                           (let ((v_0 (unsafe-car lst_0)))
                             (let ((rest_0 (unsafe-cdr lst_0)))
                               (let ((fold-var_1
                                      (let ((fold-var_1
                                             (cons
                                              (lift-in-schemified
                                               v_0
                                               leave-loops-intact?7_0)
                                              fold-var_0)))
                                        (values fold-var_1))))
                                 (for-loop_0 fold-var_1 rest_0))))
                           fold-var_0))))))
                  (for-loop_0 null body8_0)))))))))
    (case-lambda
     ((body_0) (lift-in-schemified-body_0 body_0 #f))
     ((body_0 leave-loops-intact?7_0)
      (lift-in-schemified-body_0 body_0 leave-loops-intact?7_0)))))
(define lift-in-schemified
  (letrec ((add-args_0
            (|#%name|
             add-args
             (case-lambda
              ((args_0 s_0) (begin (add-args_1 args_0 s_0 'ready)))
              ((args_0 s_0 mode18_0) (add-args_1 args_0 s_0 mode18_0)))))
           (add-args_1
            (|#%name|
             add-args
             (lambda (args19_0 s20_0 mode18_0)
               (begin
                 (letrec*
                  ((loop_3
                    (|#%name|
                     loop
                     (lambda (args_0 s_0)
                       (begin
                         (if (null? (unwrap args_0))
                           s_0
                           (if (pair? (unwrap args_0))
                             (let ((app_0 (wrap-cdr args_0)))
                               (loop_3
                                app_0
                                (hash-set
                                 s_0
                                 (unwrap (wrap-car args_0))
                                 mode18_0)))
                             (hash-set s_0 (unwrap args_0) mode18_0))))))))
                  (loop_3 args19_0 s20_0))))))
           (add-free_0
            (|#%name|
             add-free
             (lambda (frees+binds_0 var_0)
               (begin
                 (let ((app_0 (hash-set (car frees+binds_0) var_0 #t)))
                   (cons app_0 (cdr frees+binds_0)))))))
           (close-and-convert-lifts_0
            (|#%name|
             close-and-convert-lifts
             (lambda (lifts_0 loops_0)
               (begin
                 (let ((new-lifts_0 (make-hasheq)))
                   (begin
                     (begin
                       (letrec*
                        ((for-loop_0
                          (|#%name|
                           for-loop
                           (lambda (i_0)
                             (begin
                               (if i_0
                                 (call-with-values
                                  (lambda ()
                                    (hash-iterate-key+value lifts_0 i_0))
                                  (case-lambda
                                   ((f_0 info_0)
                                    (begin
                                      (if (liftable? info_0)
                                        (hash-set! new-lifts_0 f_0 info_0)
                                        (void))
                                      (for-loop_0
                                       (hash-iterate-next lifts_0 i_0))))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args))))
                                 (values)))))))
                        (for-loop_0 (hash-iterate-first lifts_0))))
                     (void)
                     (let ((lst_0 (hash-values new-lifts_0)))
                       (begin
                         (letrec*
                          ((for-loop_0
                            (|#%name|
                             for-loop
                             (lambda (lst_1)
                               (begin
                                 (if (pair? lst_1)
                                   (let ((proc_0 (unsafe-car lst_1)))
                                     (let ((rest_0 (unsafe-cdr lst_1)))
                                       (begin
                                         (let ((frees_0
                                                (liftable-frees proc_0)))
                                           (let ((binds_0
                                                  (liftable-binds proc_0)))
                                             (let ((closed-frees_0
                                                    (loop_1
                                                     binds_0
                                                     lifts_0
                                                     new-lifts_0
                                                     frees_0
                                                     (hash-keys frees_0))))
                                               (set-liftable-frees!
                                                proc_0
                                                closed-frees_0))))
                                         (for-loop_0 rest_0))))
                                   (values)))))))
                          (for-loop_0 lst_0))))
                     (void)
                     (begin
                       (letrec*
                        ((for-loop_0
                          (|#%name|
                           for-loop
                           (lambda (i_0)
                             (begin
                               (if i_0
                                 (let ((proc_0
                                        (hash-iterate-value new-lifts_0 i_0)))
                                   (call-with-values
                                    (lambda ()
                                      (if (liftable? proc_0)
                                        (begin
                                          (set-liftable-frees!
                                           proc_0
                                           (let ((temp40_0
                                                  (reverse$1
                                                   (let ((ht_0
                                                          (liftable-frees
                                                           proc_0)))
                                                     (begin
                                                       (letrec*
                                                        ((for-loop_1
                                                          (|#%name|
                                                           for-loop
                                                           (lambda (fold-var_0
                                                                    i_1)
                                                             (begin
                                                               (if i_1
                                                                 (let ((f_0
                                                                        (hash-iterate-key
                                                                         ht_0
                                                                         i_1)))
                                                                   (let ((fold-var_1
                                                                          (if (liftable?
                                                                               (hash-ref
                                                                                lifts_0
                                                                                f_0
                                                                                #f))
                                                                            fold-var_0
                                                                            (let ((fold-var_1
                                                                                   (cons
                                                                                    f_0
                                                                                    fold-var_0)))
                                                                              (values
                                                                               fold-var_1)))))
                                                                     (for-loop_1
                                                                      fold-var_1
                                                                      (hash-iterate-next
                                                                       ht_0
                                                                       i_1))))
                                                                 fold-var_0))))))
                                                        (for-loop_1
                                                         null
                                                         (hash-iterate-first
                                                          ht_0))))))))
                                             (sort.1 #f #f temp40_0 symbol<?)))
                                          (values))
                                        (values)))
                                    (case-lambda
                                     (()
                                      (for-loop_0
                                       (hash-iterate-next new-lifts_0 i_0)))
                                     (args
                                      (raise-binding-result-arity-error
                                       0
                                       args)))))
                                 (values)))))))
                        (for-loop_0 (hash-iterate-first new-lifts_0))))
                     (void)
                     (begin
                       (letrec*
                        ((for-loop_0
                          (|#%name|
                           for-loop
                           (lambda (i_0)
                             (begin
                               (if i_0
                                 (call-with-values
                                  (lambda ()
                                    (hash-iterate-key+value lifts_0 i_0))
                                  (case-lambda
                                   ((f_0 info_0)
                                    (begin
                                      (if (eq? info_0 kw2080)
                                        (hash-set! new-lifts_0 f_0 info_0)
                                        (void))
                                      (for-loop_0
                                       (hash-iterate-next lifts_0 i_0))))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args))))
                                 (values)))))))
                        (for-loop_0 (hash-iterate-first lifts_0))))
                     (void)
                     (begin
                       (letrec*
                        ((for-loop_0
                          (|#%name|
                           for-loop
                           (lambda (i_0)
                             (begin
                               (if i_0
                                 (let ((f_0 (hash-iterate-key loops_0 i_0)))
                                   (begin
                                     (hash-remove! new-lifts_0 f_0)
                                     (for-loop_0
                                      (hash-iterate-next loops_0 i_0))))
                                 (values)))))))
                        (for-loop_0 (hash-iterate-first loops_0))))
                     (void)
                     new-lifts_0))))))
           (compute-letrec-lifts!_0
            (|#%name|
             compute-letrec-lifts!
             (lambda (v_0 frees+binds_0 lifts_0 locals_0)
               (begin
                 (if (let ((p_0 (unwrap v_0)))
                       (if (pair? p_0)
                         (let ((a_0 (cdr p_0)))
                           (let ((p_1 (unwrap a_0)))
                             (if (pair? p_1)
                               (if (let ((a_1 (car p_1)))
                                     (if (wrap-list? a_1)
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (result_0 lst_0)
                                               (begin
                                                 (if (not
                                                      (null? (unwrap lst_0)))
                                                   (let ((v_1
                                                          (if (pair?
                                                               (unwrap lst_0))
                                                            (wrap-car lst_0)
                                                            lst_0)))
                                                     (let ((rest_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-cdr lst_0)
                                                              null)))
                                                       (let ((v_2 v_1))
                                                         (let ((result_1
                                                                (let ((result_1
                                                                       (let ((p_2
                                                                              (unwrap
                                                                               v_2)))
                                                                         (if (pair?
                                                                              p_2)
                                                                           (let ((a_2
                                                                                  (cdr
                                                                                   p_2)))
                                                                             (let ((p_3
                                                                                    (unwrap
                                                                                     a_2)))
                                                                               (if (pair?
                                                                                    p_3)
                                                                                 (let ((a_3
                                                                                        (cdr
                                                                                         p_3)))
                                                                                   (let ((app_0
                                                                                          (unwrap
                                                                                           '())))
                                                                                     (eq?
                                                                                      app_0
                                                                                      (unwrap
                                                                                       a_3))))
                                                                                 #f)))
                                                                           #f))))
                                                                  (values
                                                                   result_1))))
                                                           (if (if (not
                                                                    (let ((x_0
                                                                           (list
                                                                            v_2)))
                                                                      (not
                                                                       result_1)))
                                                                 #t
                                                                 #f)
                                                             (for-loop_0
                                                              result_1
                                                              rest_0)
                                                             result_1)))))
                                                   result_0))))))
                                          (for-loop_0 #t a_1)))
                                       #f))
                                 #t
                                 #f)
                               #f)))
                         #f))
                   (call-with-values
                    (lambda ()
                      (let ((d_0 (cdr (unwrap v_0))))
                        (let ((p_0 (unwrap d_0)))
                          (call-with-values
                           (lambda ()
                             (let ((a_0 (car p_0)))
                               (call-with-values
                                (lambda ()
                                  (begin
                                    (letrec*
                                     ((for-loop_0
                                       (|#%name|
                                        for-loop
                                        (lambda (ids_0 rhss_0 lst_0)
                                          (begin
                                            (if (not (null? (unwrap lst_0)))
                                              (let ((v_1
                                                     (if (pair? (unwrap lst_0))
                                                       (wrap-car lst_0)
                                                       lst_0)))
                                                (let ((rest_0
                                                       (if (pair?
                                                            (unwrap lst_0))
                                                         (wrap-cdr lst_0)
                                                         null)))
                                                  (let ((v_2 v_1))
                                                    (call-with-values
                                                     (lambda ()
                                                       (call-with-values
                                                        (lambda ()
                                                          (call-with-values
                                                           (lambda ()
                                                             (let ((p_1
                                                                    (unwrap
                                                                     v_2)))
                                                               (let ((ids_1
                                                                      (let ((a_1
                                                                             (car
                                                                              p_1)))
                                                                        a_1)))
                                                                 (let ((rhss_1
                                                                        (let ((d_1
                                                                               (cdr
                                                                                p_1)))
                                                                          (let ((a_1
                                                                                 (car
                                                                                  (unwrap
                                                                                   d_1))))
                                                                            a_1))))
                                                                   (let ((ids_2
                                                                          ids_1))
                                                                     (values
                                                                      ids_2
                                                                      rhss_1))))))
                                                           (case-lambda
                                                            ((ids33_0 rhss34_0)
                                                             (values
                                                              (cons
                                                               ids33_0
                                                               ids_0)
                                                              (cons
                                                               rhss34_0
                                                               rhss_0)))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              2
                                                              args)))))
                                                        (case-lambda
                                                         ((ids_1 rhss_1)
                                                          (values
                                                           ids_1
                                                           rhss_1))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args)))))
                                                     (case-lambda
                                                      ((ids_1 rhss_1)
                                                       (for-loop_0
                                                        ids_1
                                                        rhss_1
                                                        rest_0))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args)))))))
                                              (values ids_0 rhss_0)))))))
                                     (for-loop_0 null null a_0))))
                                (case-lambda
                                 ((ids_0 rhss_0)
                                  (let ((app_0 (reverse$1 ids_0)))
                                    (values app_0 (reverse$1 rhss_0))))
                                 (args
                                  (raise-binding-result-arity-error
                                   2
                                   args))))))
                           (case-lambda
                            ((ids_0 rhss_0)
                             (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                               (let ((ids_1 ids_0) (rhss_1 rhss_0))
                                 (values ids_1 rhss_1 body_0))))
                            (args
                             (raise-binding-result-arity-error 2 args)))))))
                    (case-lambda
                     ((ids_0 rhss_0 body_0)
                      (let ((all-lambda-or-immediate?_0
                             (begin
                               (letrec*
                                ((for-loop_0
                                  (|#%name|
                                   for-loop
                                   (lambda (result_0 lst_0)
                                     (begin
                                       (if (pair? lst_0)
                                         (let ((rhs_0 (unsafe-car lst_0)))
                                           (let ((rest_0 (unsafe-cdr lst_0)))
                                             (let ((result_1
                                                    (let ((result_1
                                                           (let ((or-part_0
                                                                  (lambda?_0
                                                                   rhs_0)))
                                                             (if or-part_0
                                                               or-part_0
                                                               (immediate?_0
                                                                rhs_0)))))
                                                      (values result_1))))
                                               (if (if (not
                                                        (let ((x_0
                                                               (list rhs_0)))
                                                          (not result_1)))
                                                     #t
                                                     #f)
                                                 (for-loop_0 result_1 rest_0)
                                                 result_1))))
                                         result_0))))))
                                (for-loop_0 #t rhss_0)))))
                        (begin
                          (if all-lambda-or-immediate?_0
                            (begin
                              (begin
                                (letrec*
                                 ((for-loop_0
                                   (|#%name|
                                    for-loop
                                    (lambda (lst_0 lst_1)
                                      (begin
                                        (if (if (pair? lst_0) (pair? lst_1) #f)
                                          (let ((id_0 (unsafe-car lst_0)))
                                            (let ((rest_0 (unsafe-cdr lst_0)))
                                              (let ((rhs_0 (unsafe-car lst_1)))
                                                (let ((rest_1
                                                       (unsafe-cdr lst_1)))
                                                  (begin
                                                    (if (lambda?_0 rhs_0)
                                                      (hash-set!
                                                       lifts_0
                                                       (unwrap id_0)
                                                       (liftable1.1
                                                        rhs_0
                                                        #f
                                                        #f))
                                                      (void))
                                                    (for-loop_0
                                                     rest_0
                                                     rest_1))))))
                                          (values)))))))
                                 (for-loop_0 ids_0 rhss_0)))
                              (void))
                            (void))
                          (let ((rhs-locals_0
                                 (add-args_0
                                  ids_0
                                  locals_0
                                  (if all-lambda-or-immediate?_0
                                    'ready
                                    'early))))
                            (let ((frees+binds_1
                                   (compute-rhs-lifts!_0
                                    ids_0
                                    rhss_0
                                    frees+binds_0
                                    lifts_0
                                    rhs-locals_0)))
                              (let ((locals_1
                                     (if all-lambda-or-immediate?_0
                                       rhs-locals_0
                                       (add-args_0 ids_0 locals_0))))
                                (let ((frees+binds_2
                                       (compute-seq-lifts!_0
                                        body_0
                                        frees+binds_1
                                        lifts_0
                                        locals_1)))
                                  (remove-frees/add-binds_0
                                   ids_0
                                   frees+binds_2
                                   lifts_0))))))))
                     (args (raise-binding-result-arity-error 3 args))))
                   (error 'match "failed ~e" v_0))))))
           (compute-lifts!_0
            (|#%name|
             compute-lifts!
             (case-lambda
              ((v_0 frees+binds_0 lifts_0 locals_0)
               (begin
                 (compute-lifts!_1 v_0 frees+binds_0 lifts_0 locals_0 #f)))
              ((v_0 frees+binds_0 lifts_0 locals_0 called?13_0)
               (compute-lifts!_1
                v_0
                frees+binds_0
                lifts_0
                locals_0
                called?13_0)))))
           (compute-lifts!_1
            (|#%name|
             compute-lifts!
             (lambda (v14_0 frees+binds15_0 lifts16_0 locals17_0 called?13_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap v14_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'let hd_0)
                         (let ((a_0 (cdr (unwrap v14_0))))
                           (let ((p_0 (unwrap a_0)))
                             (if (pair? p_0)
                               (if (let ((a_1 (car p_0)))
                                     (if (wrap-list? a_1)
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (result_0 lst_0)
                                               (begin
                                                 (if (not
                                                      (null? (unwrap lst_0)))
                                                   (let ((v_0
                                                          (if (pair?
                                                               (unwrap lst_0))
                                                            (wrap-car lst_0)
                                                            lst_0)))
                                                     (let ((rest_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-cdr lst_0)
                                                              null)))
                                                       (let ((v_1 v_0))
                                                         (let ((result_1
                                                                (let ((result_1
                                                                       (let ((p_1
                                                                              (unwrap
                                                                               v_1)))
                                                                         (if (pair?
                                                                              p_1)
                                                                           (let ((a_2
                                                                                  (cdr
                                                                                   p_1)))
                                                                             (let ((p_2
                                                                                    (unwrap
                                                                                     a_2)))
                                                                               (if (pair?
                                                                                    p_2)
                                                                                 (let ((a_3
                                                                                        (cdr
                                                                                         p_2)))
                                                                                   (let ((app_0
                                                                                          (unwrap
                                                                                           '())))
                                                                                     (eq?
                                                                                      app_0
                                                                                      (unwrap
                                                                                       a_3))))
                                                                                 #f)))
                                                                           #f))))
                                                                  (values
                                                                   result_1))))
                                                           (if (if (not
                                                                    (let ((x_0
                                                                           (list
                                                                            v_1)))
                                                                      (not
                                                                       result_1)))
                                                                 #t
                                                                 #f)
                                                             (for-loop_0
                                                              result_1
                                                              rest_0)
                                                             result_1)))))
                                                   result_0))))))
                                          (for-loop_0 #t a_1)))
                                       #f))
                                 #t
                                 #f)
                               #f)))
                         #f)
                     (call-with-values
                      (lambda ()
                        (let ((d_0 (cdr (unwrap v14_0))))
                          (let ((p_0 (unwrap d_0)))
                            (call-with-values
                             (lambda ()
                               (let ((a_0 (car p_0)))
                                 (call-with-values
                                  (lambda ()
                                    (begin
                                      (letrec*
                                       ((for-loop_0
                                         (|#%name|
                                          for-loop
                                          (lambda (ids_0 rhss_0 lst_0)
                                            (begin
                                              (if (not (null? (unwrap lst_0)))
                                                (let ((v_0
                                                       (if (pair?
                                                            (unwrap lst_0))
                                                         (wrap-car lst_0)
                                                         lst_0)))
                                                  (let ((rest_0
                                                         (if (pair?
                                                              (unwrap lst_0))
                                                           (wrap-cdr lst_0)
                                                           null)))
                                                    (let ((v_1 v_0))
                                                      (call-with-values
                                                       (lambda ()
                                                         (call-with-values
                                                          (lambda ()
                                                            (call-with-values
                                                             (lambda ()
                                                               (let ((p_1
                                                                      (unwrap
                                                                       v_1)))
                                                                 (let ((ids_1
                                                                        (let ((a_1
                                                                               (car
                                                                                p_1)))
                                                                          a_1)))
                                                                   (let ((rhss_1
                                                                          (let ((d_1
                                                                                 (cdr
                                                                                  p_1)))
                                                                            (let ((a_1
                                                                                   (car
                                                                                    (unwrap
                                                                                     d_1))))
                                                                              a_1))))
                                                                     (let ((ids_2
                                                                            ids_1))
                                                                       (values
                                                                        ids_2
                                                                        rhss_1))))))
                                                             (case-lambda
                                                              ((ids29_0
                                                                rhss30_0)
                                                               (values
                                                                (cons
                                                                 ids29_0
                                                                 ids_0)
                                                                (cons
                                                                 rhss30_0
                                                                 rhss_0)))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                2
                                                                args)))))
                                                          (case-lambda
                                                           ((ids_1 rhss_1)
                                                            (values
                                                             ids_1
                                                             rhss_1))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             2
                                                             args)))))
                                                       (case-lambda
                                                        ((ids_1 rhss_1)
                                                         (for-loop_0
                                                          ids_1
                                                          rhss_1
                                                          rest_0))
                                                        (args
                                                         (raise-binding-result-arity-error
                                                          2
                                                          args)))))))
                                                (values ids_0 rhss_0)))))))
                                       (for-loop_0 null null a_0))))
                                  (case-lambda
                                   ((ids_0 rhss_0)
                                    (let ((app_0 (reverse$1 ids_0)))
                                      (values app_0 (reverse$1 rhss_0))))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args))))))
                             (case-lambda
                              ((ids_0 rhss_0)
                               (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                                 (let ((ids_1 ids_0) (rhss_1 rhss_0))
                                   (values ids_1 rhss_1 body_0))))
                              (args
                               (raise-binding-result-arity-error 2 args)))))))
                      (case-lambda
                       ((ids_0 rhss_0 body_0)
                        (begin
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (lst_0 lst_1)
                                  (begin
                                    (if (if (pair? lst_0) (pair? lst_1) #f)
                                      (let ((id_0 (unsafe-car lst_0)))
                                        (let ((rest_0 (unsafe-cdr lst_0)))
                                          (let ((rhs_0 (unsafe-car lst_1)))
                                            (let ((rest_1 (unsafe-cdr lst_1)))
                                              (begin
                                                (if (lambda?_0 rhs_0)
                                                  (hash-set!
                                                   lifts16_0
                                                   (unwrap id_0)
                                                   (liftable1.1 rhs_0 #f #f))
                                                  (void))
                                                (for-loop_0 rest_0 rest_1))))))
                                      (values)))))))
                             (for-loop_0 ids_0 rhss_0)))
                          (void)
                          (let ((frees+binds_0
                                 (compute-rhs-lifts!_0
                                  ids_0
                                  rhss_0
                                  frees+binds15_0
                                  lifts16_0
                                  locals17_0)))
                            (let ((frees+binds_1
                                   (compute-seq-lifts!_0
                                    body_0
                                    frees+binds_0
                                    lifts16_0
                                    (add-args_0 ids_0 locals17_0))))
                              (remove-frees/add-binds_0
                               ids_0
                               frees+binds_1
                               lifts16_0)))))
                       (args (raise-binding-result-arity-error 3 args))))
                     (if (if (eq? 'letrec hd_0) #t #f)
                       (compute-letrec-lifts!_0
                        v14_0
                        frees+binds15_0
                        lifts16_0
                        locals17_0)
                       (if (if (eq? 'letrec* hd_0) #t #f)
                         (compute-letrec-lifts!_0
                          v14_0
                          frees+binds15_0
                          lifts16_0
                          locals17_0)
                         (if (let ((p_0 (unwrap v14_0)))
                               (if (pair? p_0)
                                 (if (let ((a_0 (car p_0)))
                                       (let ((p_1 (unwrap a_0)))
                                         (if (pair? p_1)
                                           (if (let ((a_1 (car p_1)))
                                                 (let ((app_0
                                                        (unwrap 'letrec)))
                                                   (eq? app_0 (unwrap a_1))))
                                             (let ((a_1 (cdr p_1)))
                                               (let ((p_2 (unwrap a_1)))
                                                 (if (pair? p_2)
                                                   (if (let ((a_2 (car p_2)))
                                                         (let ((p_3
                                                                (unwrap a_2)))
                                                           (if (pair? p_3)
                                                             (if (let ((a_3
                                                                        (car
                                                                         p_3)))
                                                                   (let ((p_4
                                                                          (unwrap
                                                                           a_3)))
                                                                     (if (pair?
                                                                          p_4)
                                                                       (let ((a_4
                                                                              (cdr
                                                                               p_4)))
                                                                         (let ((p_5
                                                                                (unwrap
                                                                                 a_4)))
                                                                           (if (pair?
                                                                                p_5)
                                                                             (let ((a_5
                                                                                    (cdr
                                                                                     p_5)))
                                                                               (let ((app_0
                                                                                      (unwrap
                                                                                       '())))
                                                                                 (eq?
                                                                                  app_0
                                                                                  (unwrap
                                                                                   a_5))))
                                                                             #f)))
                                                                       #f)))
                                                               (let ((a_3
                                                                      (cdr
                                                                       p_3)))
                                                                 (let ((app_0
                                                                        (unwrap
                                                                         '())))
                                                                   (eq?
                                                                    app_0
                                                                    (unwrap
                                                                     a_3))))
                                                               #f)
                                                             #f)))
                                                     (let ((a_2 (cdr p_2)))
                                                       (let ((p_3
                                                              (unwrap a_2)))
                                                         (if (pair? p_3)
                                                           (let ((a_3
                                                                  (cdr p_3)))
                                                             (let ((app_0
                                                                    (unwrap
                                                                     '())))
                                                               (eq?
                                                                app_0
                                                                (unwrap a_3))))
                                                           #f)))
                                                     #f)
                                                   #f)))
                                             #f)
                                           #f)))
                                   (let ((a_0 (cdr p_0))) (wrap-list? a_0))
                                   #f)
                                 #f))
                           (call-with-values
                            (lambda ()
                              (let ((p_0 (unwrap v14_0)))
                                (call-with-values
                                 (lambda ()
                                   (let ((a_0 (car p_0)))
                                     (let ((d_0 (cdr (unwrap a_0))))
                                       (let ((p_1 (unwrap d_0)))
                                         (call-with-values
                                          (lambda ()
                                            (let ((a_1 (car p_1)))
                                              (let ((a_2 (car (unwrap a_1))))
                                                (let ((p_2 (unwrap a_2)))
                                                  (let ((id_0
                                                         (let ((a_3 (car p_2)))
                                                           a_3)))
                                                    (let ((rhs_0
                                                           (let ((d_1
                                                                  (cdr p_2)))
                                                             (let ((a_3
                                                                    (car
                                                                     (unwrap
                                                                      d_1))))
                                                               a_3))))
                                                      (let ((id_1 id_0))
                                                        (values
                                                         id_1
                                                         rhs_0))))))))
                                          (case-lambda
                                           ((id_0 rhs_0)
                                            (let ((rator_0
                                                   (let ((d_1 (cdr p_1)))
                                                     (let ((a_1
                                                            (car
                                                             (unwrap d_1))))
                                                       a_1))))
                                              (let ((id_1 id_0) (rhs_1 rhs_0))
                                                (values id_1 rhs_1 rator_0))))
                                           (args
                                            (raise-binding-result-arity-error
                                             2
                                             args))))))))
                                 (case-lambda
                                  ((id_0 rhs_0 rator_0)
                                   (let ((rands_0
                                          (let ((d_0 (cdr p_0)))
                                            (unwrap-list d_0))))
                                     (let ((id_1 id_0)
                                           (rhs_1 rhs_0)
                                           (rator_1 rator_0))
                                       (values id_1 rhs_1 rator_1 rands_0))))
                                  (args
                                   (raise-binding-result-arity-error
                                    3
                                    args))))))
                            (case-lambda
                             ((id_0 rhs_0 rator_0 rands_0)
                              (compute-lifts!_0
                               (list
                                'letrec
                                (list (list id_0 rhs_0))
                                (list* rator_0 rands_0))
                               frees+binds15_0
                               lifts16_0
                               locals17_0))
                             (args (raise-binding-result-arity-error 4 args))))
                           (if (let ((p_0 (unwrap v14_0)))
                                 (if (pair? p_0)
                                   (if (let ((a_0 (car p_0)))
                                         (let ((p_1 (unwrap a_0)))
                                           (if (pair? p_1)
                                             (if (let ((a_1 (car p_1)))
                                                   (let ((app_0
                                                          (unwrap 'letrec*)))
                                                     (eq? app_0 (unwrap a_1))))
                                               (let ((a_1 (cdr p_1)))
                                                 (let ((p_2 (unwrap a_1)))
                                                   (if (pair? p_2)
                                                     (if (let ((a_2 (car p_2)))
                                                           (let ((p_3
                                                                  (unwrap
                                                                   a_2)))
                                                             (if (pair? p_3)
                                                               (if (let ((a_3
                                                                          (car
                                                                           p_3)))
                                                                     (let ((p_4
                                                                            (unwrap
                                                                             a_3)))
                                                                       (if (pair?
                                                                            p_4)
                                                                         (let ((a_4
                                                                                (cdr
                                                                                 p_4)))
                                                                           (let ((p_5
                                                                                  (unwrap
                                                                                   a_4)))
                                                                             (if (pair?
                                                                                  p_5)
                                                                               (let ((a_5
                                                                                      (cdr
                                                                                       p_5)))
                                                                                 (let ((app_0
                                                                                        (unwrap
                                                                                         '())))
                                                                                   (eq?
                                                                                    app_0
                                                                                    (unwrap
                                                                                     a_5))))
                                                                               #f)))
                                                                         #f)))
                                                                 (let ((a_3
                                                                        (cdr
                                                                         p_3)))
                                                                   (let ((app_0
                                                                          (unwrap
                                                                           '())))
                                                                     (eq?
                                                                      app_0
                                                                      (unwrap
                                                                       a_3))))
                                                                 #f)
                                                               #f)))
                                                       (let ((a_2 (cdr p_2)))
                                                         (let ((p_3
                                                                (unwrap a_2)))
                                                           (if (pair? p_3)
                                                             (let ((a_3
                                                                    (cdr p_3)))
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_3))))
                                                             #f)))
                                                       #f)
                                                     #f)))
                                               #f)
                                             #f)))
                                     (let ((a_0 (cdr p_0))) (wrap-list? a_0))
                                     #f)
                                   #f))
                             (call-with-values
                              (lambda ()
                                (let ((p_0 (unwrap v14_0)))
                                  (call-with-values
                                   (lambda ()
                                     (let ((a_0 (car p_0)))
                                       (let ((d_0 (cdr (unwrap a_0))))
                                         (let ((p_1 (unwrap d_0)))
                                           (call-with-values
                                            (lambda ()
                                              (let ((a_1 (car p_1)))
                                                (let ((a_2 (car (unwrap a_1))))
                                                  (let ((p_2 (unwrap a_2)))
                                                    (let ((id_0
                                                           (let ((a_3
                                                                  (car p_2)))
                                                             a_3)))
                                                      (let ((rhs_0
                                                             (let ((d_1
                                                                    (cdr p_2)))
                                                               (let ((a_3
                                                                      (car
                                                                       (unwrap
                                                                        d_1))))
                                                                 a_3))))
                                                        (let ((id_1 id_0))
                                                          (values
                                                           id_1
                                                           rhs_0))))))))
                                            (case-lambda
                                             ((id_0 rhs_0)
                                              (let ((rator_0
                                                     (let ((d_1 (cdr p_1)))
                                                       (let ((a_1
                                                              (car
                                                               (unwrap d_1))))
                                                         a_1))))
                                                (let ((id_1 id_0)
                                                      (rhs_1 rhs_0))
                                                  (values
                                                   id_1
                                                   rhs_1
                                                   rator_0))))
                                             (args
                                              (raise-binding-result-arity-error
                                               2
                                               args))))))))
                                   (case-lambda
                                    ((id_0 rhs_0 rator_0)
                                     (let ((rands_0
                                            (let ((d_0 (cdr p_0)))
                                              (unwrap-list d_0))))
                                       (let ((id_1 id_0)
                                             (rhs_1 rhs_0)
                                             (rator_1 rator_0))
                                         (values id_1 rhs_1 rator_1 rands_0))))
                                    (args
                                     (raise-binding-result-arity-error
                                      3
                                      args))))))
                              (case-lambda
                               ((id_0 rhs_0 rator_0 rands_0)
                                (compute-lifts!_0
                                 (list
                                  'letrec
                                  (list (list id_0 rhs_0))
                                  (list* rator_0 rands_0))
                                 frees+binds15_0
                                 lifts16_0
                                 locals17_0))
                               (args
                                (raise-binding-result-arity-error 4 args))))
                             (if (if (eq? 'lambda hd_0)
                                   (let ((a_0 (cdr (unwrap v14_0))))
                                     (let ((p_0 (unwrap a_0)))
                                       (if (pair? p_0) #t #f)))
                                   #f)
                               (call-with-values
                                (lambda ()
                                  (let ((d_0 (cdr (unwrap v14_0))))
                                    (let ((p_0 (unwrap d_0)))
                                      (let ((args_0
                                             (let ((a_0 (car p_0))) a_0)))
                                        (let ((body_0
                                               (let ((d_1 (cdr p_0))) d_1)))
                                          (let ((args_1 args_0))
                                            (values args_1 body_0)))))))
                                (case-lambda
                                 ((args_0 body_0)
                                  (let ((body-frees+binds_0
                                         (let ((app_0 (car empty-frees+binds)))
                                           (cons
                                            app_0
                                            (cdr frees+binds15_0)))))
                                    (let ((body-frees+binds_1
                                           (compute-seq-lifts!_0
                                            body_0
                                            body-frees+binds_0
                                            lifts16_0
                                            (add-args_0 args_0 locals17_0))))
                                      (let ((body-frees+binds_2
                                             (remove-frees/add-binds_0
                                              args_0
                                              body-frees+binds_1
                                              lifts16_0)))
                                        (begin
                                          (if (if (zero?
                                                   (frees-count_0
                                                    body-frees+binds_2))
                                                (not called?13_0)
                                                #f)
                                            (record-empty-closure!_0
                                             lifts16_0
                                             v14_0)
                                            (void))
                                          (let ((app_0
                                                 (let ((app_0
                                                        (car
                                                         body-frees+binds_2)))
                                                   (union_0
                                                    app_0
                                                    (car frees+binds15_0)))))
                                            (cons
                                             app_0
                                             (cdr body-frees+binds_2))))))))
                                 (args
                                  (raise-binding-result-arity-error 2 args))))
                               (if (if (eq? 'case-lambda hd_0)
                                     (let ((a_0 (cdr (unwrap v14_0))))
                                       (if (wrap-list? a_0)
                                         (begin
                                           (letrec*
                                            ((for-loop_0
                                              (|#%name|
                                               for-loop
                                               (lambda (result_0 lst_0)
                                                 (begin
                                                   (if (not
                                                        (null? (unwrap lst_0)))
                                                     (let ((v_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-car lst_0)
                                                              lst_0)))
                                                       (let ((rest_0
                                                              (if (pair?
                                                                   (unwrap
                                                                    lst_0))
                                                                (wrap-cdr
                                                                 lst_0)
                                                                null)))
                                                         (let ((v_1 v_0))
                                                           (let ((result_1
                                                                  (let ((result_1
                                                                         (let ((p_0
                                                                                (unwrap
                                                                                 v_1)))
                                                                           (if (pair?
                                                                                p_0)
                                                                             #t
                                                                             #f))))
                                                                    (values
                                                                     result_1))))
                                                             (if (if (not
                                                                      (let ((x_0
                                                                             (list
                                                                              v_1)))
                                                                        (not
                                                                         result_1)))
                                                                   #t
                                                                   #f)
                                                               (for-loop_0
                                                                result_1
                                                                rest_0)
                                                               result_1)))))
                                                     result_0))))))
                                            (for-loop_0 #t a_0)))
                                         #f))
                                     #f)
                                 (call-with-values
                                  (lambda ()
                                    (let ((d_0 (cdr (unwrap v14_0))))
                                      (call-with-values
                                       (lambda ()
                                         (begin
                                           (letrec*
                                            ((for-loop_0
                                              (|#%name|
                                               for-loop
                                               (lambda (argss_0 bodys_0 lst_0)
                                                 (begin
                                                   (if (not
                                                        (null? (unwrap lst_0)))
                                                     (let ((v_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-car lst_0)
                                                              lst_0)))
                                                       (let ((rest_0
                                                              (if (pair?
                                                                   (unwrap
                                                                    lst_0))
                                                                (wrap-cdr
                                                                 lst_0)
                                                                null)))
                                                         (let ((v_1 v_0))
                                                           (call-with-values
                                                            (lambda ()
                                                              (call-with-values
                                                               (lambda ()
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (let ((p_0
                                                                           (unwrap
                                                                            v_1)))
                                                                      (let ((argss_1
                                                                             (let ((a_0
                                                                                    (car
                                                                                     p_0)))
                                                                               a_0)))
                                                                        (let ((bodys_1
                                                                               (let ((d_1
                                                                                      (cdr
                                                                                       p_0)))
                                                                                 d_1)))
                                                                          (let ((argss_2
                                                                                 argss_1))
                                                                            (values
                                                                             argss_2
                                                                             bodys_1))))))
                                                                  (case-lambda
                                                                   ((argss31_0
                                                                     bodys32_0)
                                                                    (values
                                                                     (cons
                                                                      argss31_0
                                                                      argss_0)
                                                                     (cons
                                                                      bodys32_0
                                                                      bodys_0)))
                                                                   (args
                                                                    (raise-binding-result-arity-error
                                                                     2
                                                                     args)))))
                                                               (case-lambda
                                                                ((argss_1
                                                                  bodys_1)
                                                                 (values
                                                                  argss_1
                                                                  bodys_1))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))
                                                            (case-lambda
                                                             ((argss_1 bodys_1)
                                                              (for-loop_0
                                                               argss_1
                                                               bodys_1
                                                               rest_0))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               2
                                                               args)))))))
                                                     (values
                                                      argss_0
                                                      bodys_0)))))))
                                            (for-loop_0 null null d_0))))
                                       (case-lambda
                                        ((argss_0 bodys_0)
                                         (let ((app_0 (reverse$1 argss_0)))
                                           (values app_0 (reverse$1 bodys_0))))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))))
                                  (case-lambda
                                   ((argss_0 bodys_0)
                                    (let ((init-frees+binds_0
                                           (let ((app_0
                                                  (car empty-frees+binds)))
                                             (cons
                                              app_0
                                              (cdr frees+binds15_0)))))
                                      (let ((new-frees+binds_0
                                             (begin
                                               (letrec*
                                                ((for-loop_0
                                                  (|#%name|
                                                   for-loop
                                                   (lambda (frees+binds_0
                                                            lst_0
                                                            lst_1)
                                                     (begin
                                                       (if (if (pair? lst_0)
                                                             (pair? lst_1)
                                                             #f)
                                                         (let ((args_0
                                                                (unsafe-car
                                                                 lst_0)))
                                                           (let ((rest_0
                                                                  (unsafe-cdr
                                                                   lst_0)))
                                                             (let ((body_0
                                                                    (unsafe-car
                                                                     lst_1)))
                                                               (let ((rest_1
                                                                      (unsafe-cdr
                                                                       lst_1)))
                                                                 (let ((frees+binds_1
                                                                        (let ((frees+binds_1
                                                                               (let ((frees+binds_1
                                                                                      (compute-seq-lifts!_0
                                                                                       body_0
                                                                                       frees+binds_0
                                                                                       lifts16_0
                                                                                       (add-args_0
                                                                                        args_0
                                                                                        locals17_0))))
                                                                                 (remove-frees/add-binds_0
                                                                                  args_0
                                                                                  frees+binds_1
                                                                                  lifts16_0))))
                                                                          (values
                                                                           frees+binds_1))))
                                                                   (for-loop_0
                                                                    frees+binds_1
                                                                    rest_0
                                                                    rest_1))))))
                                                         frees+binds_0))))))
                                                (for-loop_0
                                                 init-frees+binds_0
                                                 argss_0
                                                 bodys_0)))))
                                        (begin
                                          (if (if (zero?
                                                   (frees-count_0
                                                    new-frees+binds_0))
                                                (not called?13_0)
                                                #f)
                                            (record-empty-closure!_0
                                             lifts16_0
                                             v14_0)
                                            (void))
                                          (let ((app_0
                                                 (let ((app_0
                                                        (car
                                                         new-frees+binds_0)))
                                                   (union_0
                                                    app_0
                                                    (car frees+binds15_0)))))
                                            (cons
                                             app_0
                                             (cdr new-frees+binds_0)))))))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args))))
                                 (if (if (eq? 'begin hd_0) #t #f)
                                   (let ((vs_0
                                          (let ((d_0 (cdr (unwrap v14_0))))
                                            d_0)))
                                     (compute-seq-lifts!_0
                                      vs_0
                                      frees+binds15_0
                                      lifts16_0
                                      locals17_0))
                                   (if (if (eq? 'begin0 hd_0) #t #f)
                                     (let ((vs_0
                                            (let ((d_0 (cdr (unwrap v14_0))))
                                              d_0)))
                                       (compute-seq-lifts!_0
                                        vs_0
                                        frees+binds15_0
                                        lifts16_0
                                        locals17_0))
                                     (if (if (eq? 'quote hd_0) #t #f)
                                       frees+binds15_0
                                       (if (if (eq? 'if hd_0)
                                             (let ((a_0 (cdr (unwrap v14_0))))
                                               (let ((p_0 (unwrap a_0)))
                                                 (if (pair? p_0)
                                                   (let ((a_1 (cdr p_0)))
                                                     (let ((p_1 (unwrap a_1)))
                                                       (if (pair? p_1)
                                                         (let ((a_2 (cdr p_1)))
                                                           (let ((p_2
                                                                  (unwrap
                                                                   a_2)))
                                                             (if (pair? p_2)
                                                               (let ((a_3
                                                                      (cdr
                                                                       p_2)))
                                                                 (let ((app_0
                                                                        (unwrap
                                                                         '())))
                                                                   (eq?
                                                                    app_0
                                                                    (unwrap
                                                                     a_3))))
                                                               #f)))
                                                         #f)))
                                                   #f)))
                                             #f)
                                         (call-with-values
                                          (lambda ()
                                            (let ((d_0 (cdr (unwrap v14_0))))
                                              (let ((p_0 (unwrap d_0)))
                                                (let ((tst_0
                                                       (let ((a_0 (car p_0)))
                                                         a_0)))
                                                  (call-with-values
                                                   (lambda ()
                                                     (let ((d_1 (cdr p_0)))
                                                       (let ((p_1
                                                              (unwrap d_1)))
                                                         (let ((thn_0
                                                                (let ((a_0
                                                                       (car
                                                                        p_1)))
                                                                  a_0)))
                                                           (let ((els_0
                                                                  (let ((d_2
                                                                         (cdr
                                                                          p_1)))
                                                                    (let ((a_0
                                                                           (car
                                                                            (unwrap
                                                                             d_2))))
                                                                      a_0))))
                                                             (let ((thn_1
                                                                    thn_0))
                                                               (values
                                                                thn_1
                                                                els_0)))))))
                                                   (case-lambda
                                                    ((thn_0 els_0)
                                                     (let ((tst_1 tst_0))
                                                       (values
                                                        tst_1
                                                        thn_0
                                                        els_0)))
                                                    (args
                                                     (raise-binding-result-arity-error
                                                      2
                                                      args))))))))
                                          (case-lambda
                                           ((tst_0 thn_0 els_0)
                                            (let ((frees+binds_0
                                                   (compute-lifts!_0
                                                    tst_0
                                                    frees+binds15_0
                                                    lifts16_0
                                                    locals17_0)))
                                              (let ((frees+binds_1
                                                     (compute-lifts!_0
                                                      thn_0
                                                      frees+binds_0
                                                      lifts16_0
                                                      locals17_0)))
                                                (let ((frees+binds_2
                                                       (compute-lifts!_0
                                                        els_0
                                                        frees+binds_1
                                                        lifts16_0
                                                        locals17_0)))
                                                  frees+binds_2))))
                                           (args
                                            (raise-binding-result-arity-error
                                             3
                                             args))))
                                         (if (if (eq?
                                                  'with-continuation-mark*
                                                  hd_0)
                                               (let ((a_0
                                                      (cdr (unwrap v14_0))))
                                                 (let ((p_0 (unwrap a_0)))
                                                   (if (pair? p_0)
                                                     (let ((a_1 (cdr p_0)))
                                                       (let ((p_1
                                                              (unwrap a_1)))
                                                         (if (pair? p_1)
                                                           (let ((a_2
                                                                  (cdr p_1)))
                                                             (let ((p_2
                                                                    (unwrap
                                                                     a_2)))
                                                               (if (pair? p_2)
                                                                 (let ((a_3
                                                                        (cdr
                                                                         p_2)))
                                                                   (let ((p_3
                                                                          (unwrap
                                                                           a_3)))
                                                                     (if (pair?
                                                                          p_3)
                                                                       (let ((a_4
                                                                              (cdr
                                                                               p_3)))
                                                                         (let ((app_0
                                                                                (unwrap
                                                                                 '())))
                                                                           (eq?
                                                                            app_0
                                                                            (unwrap
                                                                             a_4))))
                                                                       #f)))
                                                                 #f)))
                                                           #f)))
                                                     #f)))
                                               #f)
                                           (call-with-values
                                            (lambda ()
                                              (let ((d_0 (cdr (unwrap v14_0))))
                                                (let ((d_1 (cdr (unwrap d_0))))
                                                  (let ((p_0 (unwrap d_1)))
                                                    (let ((key_0
                                                           (let ((a_0
                                                                  (car p_0)))
                                                             a_0)))
                                                      (call-with-values
                                                       (lambda ()
                                                         (let ((d_2 (cdr p_0)))
                                                           (let ((p_1
                                                                  (unwrap
                                                                   d_2)))
                                                             (let ((val_0
                                                                    (let ((a_0
                                                                           (car
                                                                            p_1)))
                                                                      a_0)))
                                                               (let ((body_0
                                                                      (let ((d_3
                                                                             (cdr
                                                                              p_1)))
                                                                        (let ((a_0
                                                                               (car
                                                                                (unwrap
                                                                                 d_3))))
                                                                          a_0))))
                                                                 (let ((val_1
                                                                        val_0))
                                                                   (values
                                                                    val_1
                                                                    body_0)))))))
                                                       (case-lambda
                                                        ((val_0 body_0)
                                                         (let ((key_1 key_0))
                                                           (values
                                                            key_1
                                                            val_0
                                                            body_0)))
                                                        (args
                                                         (raise-binding-result-arity-error
                                                          2
                                                          args)))))))))
                                            (case-lambda
                                             ((key_0 val_0 body_0)
                                              (let ((frees+binds_0
                                                     (compute-lifts!_0
                                                      key_0
                                                      frees+binds15_0
                                                      lifts16_0
                                                      locals17_0)))
                                                (let ((frees+binds_1
                                                       (compute-lifts!_0
                                                        val_0
                                                        frees+binds_0
                                                        lifts16_0
                                                        locals17_0)))
                                                  (let ((frees+binds_2
                                                         (compute-lifts!_0
                                                          body_0
                                                          frees+binds_1
                                                          lifts16_0
                                                          locals17_0)))
                                                    frees+binds_2))))
                                             (args
                                              (raise-binding-result-arity-error
                                               3
                                               args))))
                                           (if (if (eq? 'set! hd_0)
                                                 (let ((a_0
                                                        (cdr (unwrap v14_0))))
                                                   (let ((p_0 (unwrap a_0)))
                                                     (if (pair? p_0)
                                                       (let ((a_1 (cdr p_0)))
                                                         (let ((p_1
                                                                (unwrap a_1)))
                                                           (if (pair? p_1)
                                                             (let ((a_2
                                                                    (cdr p_1)))
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_2))))
                                                             #f)))
                                                       #f)))
                                                 #f)
                                             (call-with-values
                                              (lambda ()
                                                (let ((d_0
                                                       (cdr (unwrap v14_0))))
                                                  (let ((p_0 (unwrap d_0)))
                                                    (let ((id_0
                                                           (let ((a_0
                                                                  (car p_0)))
                                                             a_0)))
                                                      (let ((rhs_0
                                                             (let ((d_1
                                                                    (cdr p_0)))
                                                               (let ((a_0
                                                                      (car
                                                                       (unwrap
                                                                        d_1))))
                                                                 a_0))))
                                                        (let ((id_1 id_0))
                                                          (values
                                                           id_1
                                                           rhs_0)))))))
                                              (case-lambda
                                               ((id_0 rhs_0)
                                                (let ((var_0 (unwrap id_0)))
                                                  (let ((frees+binds_0
                                                         (let ((c1_0
                                                                (hash-ref
                                                                 locals17_0
                                                                 var_0
                                                                 #f)))
                                                           (if c1_0
                                                             (begin
                                                               (lookup-indirected-variable_0
                                                                lifts16_0
                                                                var_0
                                                                (eq?
                                                                 c1_0
                                                                 'early))
                                                               (add-free_0
                                                                frees+binds15_0
                                                                var_0))
                                                             frees+binds15_0))))
                                                    (compute-lifts!_0
                                                     rhs_0
                                                     frees+binds_0
                                                     lifts16_0
                                                     locals17_0))))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args))))
                                             (if (if (eq?
                                                      '|#%variable-reference|
                                                      hd_0)
                                                   #t
                                                   #f)
                                               (error
                                                'internal-error
                                                "lift: unexpected variable reference")
                                               (if (if (eq?
                                                        'call-with-values
                                                        hd_0)
                                                     (let ((a_0
                                                            (cdr
                                                             (unwrap v14_0))))
                                                       (let ((p_0
                                                              (unwrap a_0)))
                                                         (if (pair? p_0)
                                                           (let ((a_1
                                                                  (cdr p_0)))
                                                             (let ((p_1
                                                                    (unwrap
                                                                     a_1)))
                                                               (if (pair? p_1)
                                                                 (let ((a_2
                                                                        (cdr
                                                                         p_1)))
                                                                   (let ((app_0
                                                                          (unwrap
                                                                           '())))
                                                                     (eq?
                                                                      app_0
                                                                      (unwrap
                                                                       a_2))))
                                                                 #f)))
                                                           #f)))
                                                     #f)
                                                 (call-with-values
                                                  (lambda ()
                                                    (let ((d_0
                                                           (cdr
                                                            (unwrap v14_0))))
                                                      (let ((p_0 (unwrap d_0)))
                                                        (let ((producer_0
                                                               (let ((a_0
                                                                      (car
                                                                       p_0)))
                                                                 a_0)))
                                                          (let ((consumer_0
                                                                 (let ((d_1
                                                                        (cdr
                                                                         p_0)))
                                                                   (let ((a_0
                                                                          (car
                                                                           (unwrap
                                                                            d_1))))
                                                                     a_0))))
                                                            (let ((producer_1
                                                                   producer_0))
                                                              (values
                                                               producer_1
                                                               consumer_0)))))))
                                                  (case-lambda
                                                   ((producer_0 consumer_0)
                                                    (let ((frees+binds_0
                                                           (compute-lifts!_0
                                                            producer_0
                                                            frees+binds15_0
                                                            lifts16_0
                                                            locals17_0
                                                            #t)))
                                                      (let ((frees+binds_1
                                                             (compute-lifts!_0
                                                              consumer_0
                                                              frees+binds_0
                                                              lifts16_0
                                                              locals17_0
                                                              #t)))
                                                        frees+binds_1)))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args))))
                                                 (if (let ((p_0
                                                            (unwrap v14_0)))
                                                       (if (pair? p_0) #t #f))
                                                   (call-with-values
                                                    (lambda ()
                                                      (let ((p_0
                                                             (unwrap v14_0)))
                                                        (let ((rator_0
                                                               (let ((a_0
                                                                      (car
                                                                       p_0)))
                                                                 a_0)))
                                                          (let ((rands_0
                                                                 (let ((d_0
                                                                        (cdr
                                                                         p_0)))
                                                                   d_0)))
                                                            (let ((rator_1
                                                                   rator_0))
                                                              (values
                                                               rator_1
                                                               rands_0))))))
                                                    (case-lambda
                                                     ((rator_0 rands_0)
                                                      (let ((f_0
                                                             (unwrap rator_0)))
                                                        (let ((frees+binds_0
                                                               (if (symbol?
                                                                    f_0)
                                                                 (begin
                                                                   (let ((proc_0
                                                                          (hash-ref
                                                                           lifts16_0
                                                                           f_0
                                                                           #f)))
                                                                     (if (liftable?
                                                                          proc_0)
                                                                       (if (let ((app_0
                                                                                  (liftable-expr
                                                                                   proc_0)))
                                                                             (consistent-argument-count?_0
                                                                              app_0
                                                                              (length
                                                                               (unwrap-list
                                                                                rands_0))))
                                                                         (void)
                                                                         (hash-remove!
                                                                          lifts16_0
                                                                          f_0))
                                                                       (void)))
                                                                   (if (hash-ref
                                                                        locals17_0
                                                                        f_0
                                                                        #f)
                                                                     (add-free_0
                                                                      frees+binds15_0
                                                                      f_0)
                                                                     frees+binds15_0))
                                                                 (compute-lifts!_0
                                                                  rator_0
                                                                  frees+binds15_0
                                                                  lifts16_0
                                                                  locals17_0))))
                                                          (compute-seq-lifts!_0
                                                           rands_0
                                                           frees+binds_0
                                                           lifts16_0
                                                           locals17_0))))
                                                     (args
                                                      (raise-binding-result-arity-error
                                                       2
                                                       args))))
                                                   (let ((x_0 (unwrap v14_0)))
                                                     (if (let ((or-part_0
                                                                (string? x_0)))
                                                           (if or-part_0
                                                             or-part_0
                                                             (let ((or-part_1
                                                                    (bytes?
                                                                     x_0)))
                                                               (if or-part_1
                                                                 or-part_1
                                                                 (let ((or-part_2
                                                                        (boolean?
                                                                         x_0)))
                                                                   (if or-part_2
                                                                     or-part_2
                                                                     (number?
                                                                      x_0)))))))
                                                       frees+binds15_0
                                                       (begin
                                                         (if (symbol? x_0)
                                                           (void)
                                                           (error
                                                            'lift-in-schemified
                                                            "unrecognized expression form: ~e"
                                                            v14_0))
                                                         (let ((proc_0
                                                                (hash-ref
                                                                 lifts16_0
                                                                 x_0
                                                                 #f)))
                                                           (if (liftable?
                                                                proc_0)
                                                             (hash-remove!
                                                              lifts16_0
                                                              x_0)
                                                             (void)))
                                                         (let ((loc-status_0
                                                                (hash-ref
                                                                 locals17_0
                                                                 x_0
                                                                 #f)))
                                                           (if loc-status_0
                                                             (let ((frees+binds_0
                                                                    (add-free_0
                                                                     frees+binds15_0
                                                                     x_0)))
                                                               (if (eq?
                                                                    loc-status_0
                                                                    'early)
                                                                 (begin
                                                                   (lookup-indirected-variable_0
                                                                    lifts16_0
                                                                    x_0
                                                                    #t)
                                                                   (add-free_0
                                                                    frees+binds_0
                                                                    x_0))
                                                                 frees+binds_0))
                                                             frees+binds15_0))))))))))))))))))))))))))
           (compute-rhs-lifts!_0
            (|#%name|
             compute-rhs-lifts!
             (lambda (ids_0 rhss_0 frees+binds_0 lifts_0 locals_0)
               (begin
                 (begin
                   (letrec*
                    ((for-loop_0
                      (|#%name|
                       for-loop
                       (lambda (frees+binds_1 lst_0 lst_1)
                         (begin
                           (if (if (pair? lst_0) (pair? lst_1) #f)
                             (let ((id_0 (unsafe-car lst_0)))
                               (let ((rest_0 (unsafe-cdr lst_0)))
                                 (let ((rhs_0 (unsafe-car lst_1)))
                                   (let ((rest_1 (unsafe-cdr lst_1)))
                                     (let ((frees+binds_2
                                            (let ((frees+binds_2
                                                   (let ((rhs-frees+binds_0
                                                          (compute-lifts!_0
                                                           rhs_0
                                                           empty-frees+binds
                                                           lifts_0
                                                           locals_0)))
                                                     (let ((f_0 (unwrap id_0)))
                                                       (let ((rhs-frees+binds_1
                                                              rhs-frees+binds_0))
                                                         (begin
                                                           (let ((proc_0
                                                                  (hash-ref
                                                                   lifts_0
                                                                   f_0
                                                                   #f)))
                                                             (if (liftable?
                                                                  proc_0)
                                                               (begin
                                                                 (set-liftable-frees!
                                                                  proc_0
                                                                  (car
                                                                   rhs-frees+binds_1))
                                                                 (set-liftable-binds!
                                                                  proc_0
                                                                  (cdr
                                                                   rhs-frees+binds_1)))
                                                               (void)))
                                                           (let ((app_0
                                                                  (let ((app_0
                                                                         (car
                                                                          rhs-frees+binds_1)))
                                                                    (union_0
                                                                     app_0
                                                                     (car
                                                                      frees+binds_1)))))
                                                             (cons
                                                              app_0
                                                              (let ((app_1
                                                                     (cdr
                                                                      rhs-frees+binds_1)))
                                                                (union_0
                                                                 app_1
                                                                 (cdr
                                                                  frees+binds_1)))))))))))
                                              (values frees+binds_2))))
                                       (for-loop_0
                                        frees+binds_2
                                        rest_0
                                        rest_1))))))
                             frees+binds_1))))))
                    (for-loop_0 frees+binds_0 ids_0 rhss_0)))))))
           (compute-seq-lifts!_0
            (|#%name|
             compute-seq-lifts!
             (lambda (vs_0 frees+binds_0 lifts_0 locals_0)
               (begin
                 (begin
                   (letrec*
                    ((for-loop_0
                      (|#%name|
                       for-loop
                       (lambda (frees+binds_1 lst_0)
                         (begin
                           (if (not (null? (unwrap lst_0)))
                             (let ((v_0
                                    (if (pair? (unwrap lst_0))
                                      (wrap-car lst_0)
                                      lst_0)))
                               (let ((rest_0
                                      (if (pair? (unwrap lst_0))
                                        (wrap-cdr lst_0)
                                        null)))
                                 (let ((v_1 v_0))
                                   (let ((frees+binds_2
                                          (let ((frees+binds_2
                                                 (compute-lifts!_0
                                                  v_1
                                                  frees+binds_1
                                                  lifts_0
                                                  locals_0)))
                                            (values frees+binds_2))))
                                     (for-loop_0 frees+binds_2 rest_0)))))
                             frees+binds_1))))))
                    (for-loop_0 frees+binds_0 vs_0)))))))
           (consistent-argument-count?_0
            (|#%name|
             consistent-argument-count?
             (lambda (proc_0 n_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap proc_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'lambda hd_0)
                         (let ((a_0 (cdr (unwrap proc_0))))
                           (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
                         #f)
                     (let ((args_0
                            (let ((d_0 (cdr (unwrap proc_0))))
                              (let ((a_0 (car (unwrap d_0)))) a_0))))
                       (consistent?_0 args_0 n_0))
                     (if (if (eq? 'case-lambda hd_0)
                           (let ((a_0 (cdr (unwrap proc_0))))
                             (if (wrap-list? a_0)
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (result_0 lst_0)
                                       (begin
                                         (if (not (null? (unwrap lst_0)))
                                           (let ((v_0
                                                  (if (pair? (unwrap lst_0))
                                                    (wrap-car lst_0)
                                                    lst_0)))
                                             (let ((rest_0
                                                    (if (pair? (unwrap lst_0))
                                                      (wrap-cdr lst_0)
                                                      null)))
                                               (let ((v_1 v_0))
                                                 (let ((result_1
                                                        (let ((result_1
                                                               (let ((p_0
                                                                      (unwrap
                                                                       v_1)))
                                                                 (if (pair?
                                                                      p_0)
                                                                   #t
                                                                   #f))))
                                                          (values result_1))))
                                                   (if (if (not
                                                            (let ((x_0
                                                                   (list v_1)))
                                                              (not result_1)))
                                                         #t
                                                         #f)
                                                     (for-loop_0
                                                      result_1
                                                      rest_0)
                                                     result_1)))))
                                           result_0))))))
                                  (for-loop_0 #t a_0)))
                               #f))
                           #f)
                       (let ((argss_0
                              (let ((d_0 (cdr (unwrap proc_0))))
                                (let ((argss_0
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (argss_0 lst_0)
                                               (begin
                                                 (if (not
                                                      (null? (unwrap lst_0)))
                                                   (let ((v_0
                                                          (if (pair?
                                                               (unwrap lst_0))
                                                            (wrap-car lst_0)
                                                            lst_0)))
                                                     (let ((rest_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-cdr lst_0)
                                                              null)))
                                                       (let ((v_1 v_0))
                                                         (let ((argss_1
                                                                (let ((argss_1
                                                                       (let ((argss53_0
                                                                              (let ((a_0
                                                                                     (car
                                                                                      (unwrap
                                                                                       v_1))))
                                                                                a_0)))
                                                                         (cons
                                                                          argss53_0
                                                                          argss_0))))
                                                                  (values
                                                                   argss_1))))
                                                           (for-loop_0
                                                            argss_1
                                                            rest_0)))))
                                                   argss_0))))))
                                          (for-loop_0 null d_0)))))
                                  (reverse$1 argss_0)))))
                         (begin
                           (letrec*
                            ((for-loop_0
                              (|#%name|
                               for-loop
                               (lambda (result_0 lst_0)
                                 (begin
                                   (if (pair? lst_0)
                                     (let ((args_0 (unsafe-car lst_0)))
                                       (let ((rest_0 (unsafe-cdr lst_0)))
                                         (let ((result_1
                                                (let ((result_1
                                                       (consistent?_0
                                                        args_0
                                                        n_0)))
                                                  (values result_1))))
                                           (if (if (not
                                                    (let ((x_0 (list args_0)))
                                                      result_1))
                                                 #t
                                                 #f)
                                             (for-loop_0 result_1 rest_0)
                                             result_1))))
                                     result_0))))))
                            (for-loop_0 #f argss_0))))
                       #f)))))))
           (consistent?_0
            (|#%name|
             consistent?
             (lambda (args_0 n_0)
               (begin
                 (letrec*
                  ((loop_3
                    (|#%name|
                     loop
                     (lambda (args_1 n_1)
                       (begin
                         (if (negative? n_1)
                           #f
                           (if (null? (unwrap args_1))
                             (zero? n_1)
                             (if (pair? (unwrap args_1))
                               (let ((app_0 (wrap-cdr args_1)))
                                 (loop_3 app_0 (sub1 n_1)))
                               #t))))))))
                  (loop_3 args_0 n_0))))))
           (convert-lifted-calls-in-expr_0
            (|#%name|
             convert-lifted-calls-in-expr
             (lambda (v_0 lifts_0 frees_0 empties_0)
               (begin (convert_0 empties_0 frees_0 lifts_0 v_0)))))
           (convert-lifted-calls-in-let_0
            (|#%name|
             convert-lifted-calls-in-let
             (lambda (v_0 lifts_0 frees_0 empties_0)
               (begin
                 (if (let ((p_0 (unwrap v_0)))
                       (if (pair? p_0)
                         (let ((a_0 (cdr p_0)))
                           (let ((p_1 (unwrap a_0)))
                             (if (pair? p_1)
                               (if (let ((a_1 (car p_1)))
                                     (if (wrap-list? a_1)
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (result_0 lst_0)
                                               (begin
                                                 (if (not
                                                      (null? (unwrap lst_0)))
                                                   (let ((v_1
                                                          (if (pair?
                                                               (unwrap lst_0))
                                                            (wrap-car lst_0)
                                                            lst_0)))
                                                     (let ((rest_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-cdr lst_0)
                                                              null)))
                                                       (let ((v_2 v_1))
                                                         (let ((result_1
                                                                (let ((result_1
                                                                       (let ((p_2
                                                                              (unwrap
                                                                               v_2)))
                                                                         (if (pair?
                                                                              p_2)
                                                                           (let ((a_2
                                                                                  (cdr
                                                                                   p_2)))
                                                                             (let ((p_3
                                                                                    (unwrap
                                                                                     a_2)))
                                                                               (if (pair?
                                                                                    p_3)
                                                                                 (let ((a_3
                                                                                        (cdr
                                                                                         p_3)))
                                                                                   (let ((app_0
                                                                                          (unwrap
                                                                                           '())))
                                                                                     (eq?
                                                                                      app_0
                                                                                      (unwrap
                                                                                       a_3))))
                                                                                 #f)))
                                                                           #f))))
                                                                  (values
                                                                   result_1))))
                                                           (if (if (not
                                                                    (let ((x_0
                                                                           (list
                                                                            v_2)))
                                                                      (not
                                                                       result_1)))
                                                                 #t
                                                                 #f)
                                                             (for-loop_0
                                                              result_1
                                                              rest_0)
                                                             result_1)))))
                                                   result_0))))))
                                          (for-loop_0 #t a_1)))
                                       #f))
                                 #t
                                 #f)
                               #f)))
                         #f))
                   (call-with-values
                    (lambda ()
                      (let ((p_0 (unwrap v_0)))
                        (let ((let-id_0 (let ((a_0 (car p_0))) a_0)))
                          (call-with-values
                           (lambda ()
                             (let ((d_0 (cdr p_0)))
                               (let ((p_1 (unwrap d_0)))
                                 (call-with-values
                                  (lambda ()
                                    (let ((a_0 (car p_1)))
                                      (call-with-values
                                       (lambda ()
                                         (begin
                                           (letrec*
                                            ((for-loop_0
                                              (|#%name|
                                               for-loop
                                               (lambda (ids_0 rhss_0 lst_0)
                                                 (begin
                                                   (if (not
                                                        (null? (unwrap lst_0)))
                                                     (let ((v_1
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-car lst_0)
                                                              lst_0)))
                                                       (let ((rest_0
                                                              (if (pair?
                                                                   (unwrap
                                                                    lst_0))
                                                                (wrap-cdr
                                                                 lst_0)
                                                                null)))
                                                         (let ((v_2 v_1))
                                                           (call-with-values
                                                            (lambda ()
                                                              (call-with-values
                                                               (lambda ()
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (let ((p_2
                                                                           (unwrap
                                                                            v_2)))
                                                                      (let ((ids_1
                                                                             (let ((a_1
                                                                                    (car
                                                                                     p_2)))
                                                                               a_1)))
                                                                        (let ((rhss_1
                                                                               (let ((d_1
                                                                                      (cdr
                                                                                       p_2)))
                                                                                 (let ((a_1
                                                                                        (car
                                                                                         (unwrap
                                                                                          d_1))))
                                                                                   a_1))))
                                                                          (let ((ids_2
                                                                                 ids_1))
                                                                            (values
                                                                             ids_2
                                                                             rhss_1))))))
                                                                  (case-lambda
                                                                   ((ids44_0
                                                                     rhss45_0)
                                                                    (values
                                                                     (cons
                                                                      ids44_0
                                                                      ids_0)
                                                                     (cons
                                                                      rhss45_0
                                                                      rhss_0)))
                                                                   (args
                                                                    (raise-binding-result-arity-error
                                                                     2
                                                                     args)))))
                                                               (case-lambda
                                                                ((ids_1 rhss_1)
                                                                 (values
                                                                  ids_1
                                                                  rhss_1))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))
                                                            (case-lambda
                                                             ((ids_1 rhss_1)
                                                              (for-loop_0
                                                               ids_1
                                                               rhss_1
                                                               rest_0))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               2
                                                               args)))))))
                                                     (values
                                                      ids_0
                                                      rhss_0)))))))
                                            (for-loop_0 null null a_0))))
                                       (case-lambda
                                        ((ids_0 rhss_0)
                                         (let ((app_0 (reverse$1 ids_0)))
                                           (values app_0 (reverse$1 rhss_0))))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))))
                                  (case-lambda
                                   ((ids_0 rhss_0)
                                    (let ((body_0 (let ((d_1 (cdr p_1))) d_1)))
                                      (let ((ids_1 ids_0) (rhss_1 rhss_0))
                                        (values ids_1 rhss_1 body_0))))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args)))))))
                           (case-lambda
                            ((ids_0 rhss_0 body_0)
                             (let ((let-id_1 let-id_0))
                               (values let-id_1 ids_0 rhss_0 body_0)))
                            (args
                             (raise-binding-result-arity-error 3 args)))))))
                    (case-lambda
                     ((let-id_0 ids_0 rhss_0 body_0)
                      (let ((bindings_0
                             (reverse$1
                              (begin
                                (letrec*
                                 ((for-loop_0
                                   (|#%name|
                                    for-loop
                                    (lambda (fold-var_0 lst_0 lst_1)
                                      (begin
                                        (if (if (pair? lst_0) (pair? lst_1) #f)
                                          (let ((id_0 (unsafe-car lst_0)))
                                            (let ((rest_0 (unsafe-cdr lst_0)))
                                              (let ((rhs_0 (unsafe-car lst_1)))
                                                (let ((rest_1
                                                       (unsafe-cdr lst_1)))
                                                  (let ((fold-var_1
                                                         (if (liftable?
                                                              (hash-ref
                                                               lifts_0
                                                               (unwrap id_0)
                                                               #f))
                                                           fold-var_0
                                                           (let ((fold-var_1
                                                                  (cons
                                                                   (list
                                                                    id_0
                                                                    (let ((rhs_1
                                                                           (convert-lifted-calls-in-expr_0
                                                                            rhs_0
                                                                            lifts_0
                                                                            frees_0
                                                                            empties_0)))
                                                                      (if (indirected?
                                                                           (hash-ref
                                                                            lifts_0
                                                                            (unwrap
                                                                             id_0)
                                                                            #f))
                                                                        (list
                                                                         'box
                                                                         rhs_1)
                                                                        rhs_1)))
                                                                   fold-var_0)))
                                                             (values
                                                              fold-var_1)))))
                                                    (for-loop_0
                                                     fold-var_1
                                                     rest_0
                                                     rest_1))))))
                                          fold-var_0))))))
                                 (for-loop_0 null ids_0 rhss_0))))))
                        (let ((new-body_0
                               (convert-lifted-calls-in-seq_0
                                body_0
                                lifts_0
                                frees_0
                                empties_0)))
                          (reannotate
                           v_0
                           (rebuild-let_0 let-id_0 bindings_0 new-body_0)))))
                     (args (raise-binding-result-arity-error 4 args))))
                   (error 'match "failed ~e" v_0))))))
           (convert-lifted-calls-in-letrec_0
            (|#%name|
             convert-lifted-calls-in-letrec
             (lambda (v_0 lifts_0 frees_0 empties_0)
               (begin
                 (if (let ((p_0 (unwrap v_0)))
                       (if (pair? p_0)
                         (let ((a_0 (cdr p_0)))
                           (let ((p_1 (unwrap a_0)))
                             (if (pair? p_1)
                               (if (let ((a_1 (car p_1)))
                                     (if (wrap-list? a_1)
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (result_0 lst_0)
                                               (begin
                                                 (if (not
                                                      (null? (unwrap lst_0)))
                                                   (let ((v_1
                                                          (if (pair?
                                                               (unwrap lst_0))
                                                            (wrap-car lst_0)
                                                            lst_0)))
                                                     (let ((rest_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-cdr lst_0)
                                                              null)))
                                                       (let ((v_2 v_1))
                                                         (let ((result_1
                                                                (let ((result_1
                                                                       (let ((p_2
                                                                              (unwrap
                                                                               v_2)))
                                                                         (if (pair?
                                                                              p_2)
                                                                           (let ((a_2
                                                                                  (cdr
                                                                                   p_2)))
                                                                             (let ((p_3
                                                                                    (unwrap
                                                                                     a_2)))
                                                                               (if (pair?
                                                                                    p_3)
                                                                                 (let ((a_3
                                                                                        (cdr
                                                                                         p_3)))
                                                                                   (let ((app_0
                                                                                          (unwrap
                                                                                           '())))
                                                                                     (eq?
                                                                                      app_0
                                                                                      (unwrap
                                                                                       a_3))))
                                                                                 #f)))
                                                                           #f))))
                                                                  (values
                                                                   result_1))))
                                                           (if (if (not
                                                                    (let ((x_0
                                                                           (list
                                                                            v_2)))
                                                                      (not
                                                                       result_1)))
                                                                 #t
                                                                 #f)
                                                             (for-loop_0
                                                              result_1
                                                              rest_0)
                                                             result_1)))))
                                                   result_0))))))
                                          (for-loop_0 #t a_1)))
                                       #f))
                                 #t
                                 #f)
                               #f)))
                         #f))
                   (call-with-values
                    (lambda ()
                      (let ((p_0 (unwrap v_0)))
                        (let ((let-id_0 (let ((a_0 (car p_0))) a_0)))
                          (call-with-values
                           (lambda ()
                             (let ((d_0 (cdr p_0)))
                               (let ((p_1 (unwrap d_0)))
                                 (call-with-values
                                  (lambda ()
                                    (let ((a_0 (car p_1)))
                                      (call-with-values
                                       (lambda ()
                                         (begin
                                           (letrec*
                                            ((for-loop_0
                                              (|#%name|
                                               for-loop
                                               (lambda (ids_0 rhss_0 lst_0)
                                                 (begin
                                                   (if (not
                                                        (null? (unwrap lst_0)))
                                                     (let ((v_1
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-car lst_0)
                                                              lst_0)))
                                                       (let ((rest_0
                                                              (if (pair?
                                                                   (unwrap
                                                                    lst_0))
                                                                (wrap-cdr
                                                                 lst_0)
                                                                null)))
                                                         (let ((v_2 v_1))
                                                           (call-with-values
                                                            (lambda ()
                                                              (call-with-values
                                                               (lambda ()
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (let ((p_2
                                                                           (unwrap
                                                                            v_2)))
                                                                      (let ((ids_1
                                                                             (let ((a_1
                                                                                    (car
                                                                                     p_2)))
                                                                               a_1)))
                                                                        (let ((rhss_1
                                                                               (let ((d_1
                                                                                      (cdr
                                                                                       p_2)))
                                                                                 (let ((a_1
                                                                                        (car
                                                                                         (unwrap
                                                                                          d_1))))
                                                                                   a_1))))
                                                                          (let ((ids_2
                                                                                 ids_1))
                                                                            (values
                                                                             ids_2
                                                                             rhss_1))))))
                                                                  (case-lambda
                                                                   ((ids46_0
                                                                     rhss47_0)
                                                                    (values
                                                                     (cons
                                                                      ids46_0
                                                                      ids_0)
                                                                     (cons
                                                                      rhss47_0
                                                                      rhss_0)))
                                                                   (args
                                                                    (raise-binding-result-arity-error
                                                                     2
                                                                     args)))))
                                                               (case-lambda
                                                                ((ids_1 rhss_1)
                                                                 (values
                                                                  ids_1
                                                                  rhss_1))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))
                                                            (case-lambda
                                                             ((ids_1 rhss_1)
                                                              (for-loop_0
                                                               ids_1
                                                               rhss_1
                                                               rest_0))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               2
                                                               args)))))))
                                                     (values
                                                      ids_0
                                                      rhss_0)))))))
                                            (for-loop_0 null null a_0))))
                                       (case-lambda
                                        ((ids_0 rhss_0)
                                         (let ((app_0 (reverse$1 ids_0)))
                                           (values app_0 (reverse$1 rhss_0))))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))))
                                  (case-lambda
                                   ((ids_0 rhss_0)
                                    (let ((body_0 (let ((d_1 (cdr p_1))) d_1)))
                                      (let ((ids_1 ids_0) (rhss_1 rhss_0))
                                        (values ids_1 rhss_1 body_0))))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args)))))))
                           (case-lambda
                            ((ids_0 rhss_0 body_0)
                             (let ((let-id_1 let-id_0))
                               (values let-id_1 ids_0 rhss_0 body_0)))
                            (args
                             (raise-binding-result-arity-error 3 args)))))))
                    (case-lambda
                     ((let-id_0 ids_0 rhss_0 body_0)
                      (let ((pre-bindings_0
                             (reverse$1
                              (begin
                                (letrec*
                                 ((for-loop_0
                                   (|#%name|
                                    for-loop
                                    (lambda (fold-var_0 lst_0 lst_1)
                                      (begin
                                        (if (if (pair? lst_0) (pair? lst_1) #f)
                                          (let ((id_0 (unsafe-car lst_0)))
                                            (let ((rest_0 (unsafe-cdr lst_0)))
                                              (let ((rhs_0 (unsafe-car lst_1)))
                                                (let ((rest_1
                                                       (unsafe-cdr lst_1)))
                                                  (let ((fold-var_1
                                                         (if (indirected?
                                                              (hash-ref
                                                               lifts_0
                                                               (unwrap id_0)
                                                               #f))
                                                           (let ((fold-var_1
                                                                  (cons
                                                                   (list*
                                                                    id_0
                                                                    '((box
                                                                       unsafe-undefined)))
                                                                   fold-var_0)))
                                                             (values
                                                              fold-var_1))
                                                           fold-var_0)))
                                                    (for-loop_0
                                                     fold-var_1
                                                     rest_0
                                                     rest_1))))))
                                          fold-var_0))))))
                                 (for-loop_0 null ids_0 rhss_0))))))
                        (let ((bindings_0
                               (reverse$1
                                (begin
                                  (letrec*
                                   ((for-loop_0
                                     (|#%name|
                                      for-loop
                                      (lambda (fold-var_0 lst_0 lst_1)
                                        (begin
                                          (if (if (pair? lst_0)
                                                (pair? lst_1)
                                                #f)
                                            (let ((id_0 (unsafe-car lst_0)))
                                              (let ((rest_0
                                                     (unsafe-cdr lst_0)))
                                                (let ((rhs_0
                                                       (unsafe-car lst_1)))
                                                  (let ((rest_1
                                                         (unsafe-cdr lst_1)))
                                                    (let ((fold-var_1
                                                           (if (liftable?
                                                                (hash-ref
                                                                 lifts_0
                                                                 (unwrap id_0)
                                                                 #f))
                                                             fold-var_0
                                                             (let ((fold-var_1
                                                                    (cons
                                                                     (let ((new-rhs_0
                                                                            (convert-lifted-calls-in-expr_0
                                                                             rhs_0
                                                                             lifts_0
                                                                             frees_0
                                                                             empties_0)))
                                                                       (if (indirected?
                                                                            (hash-ref
                                                                             lifts_0
                                                                             (unwrap
                                                                              id_0)
                                                                             #f))
                                                                         (list
                                                                          (deterministic-gensym
                                                                           "seq")
                                                                          (list
                                                                           'unsafe-set-box*!
                                                                           id_0
                                                                           new-rhs_0))
                                                                         (list
                                                                          id_0
                                                                          new-rhs_0)))
                                                                     fold-var_0)))
                                                               (values
                                                                fold-var_1)))))
                                                      (for-loop_0
                                                       fold-var_1
                                                       rest_0
                                                       rest_1))))))
                                            fold-var_0))))))
                                   (for-loop_0 null ids_0 rhss_0))))))
                          (let ((new-bindings_0
                                 (if (null? bindings_0)
                                   pre-bindings_0
                                   (append pre-bindings_0 bindings_0))))
                            (let ((new-body_0
                                   (convert-lifted-calls-in-seq_0
                                    body_0
                                    lifts_0
                                    frees_0
                                    empties_0)))
                              (reannotate
                               v_0
                               (rebuild-let_0
                                let-id_0
                                new-bindings_0
                                new-body_0)))))))
                     (args (raise-binding-result-arity-error 4 args))))
                   (error 'match "failed ~e" v_0))))))
           (convert-lifted-calls-in-seq/box-mutated_0
            (|#%name|
             convert-lifted-calls-in-seq/box-mutated
             (lambda (vs_0 ids_0 lifts_0 frees_0 empties_0)
               (begin (loop_2 empties_0 frees_0 lifts_0 vs_0 ids_0)))))
           (convert-lifted-calls-in-seq_0
            (|#%name|
             convert-lifted-calls-in-seq
             (lambda (vs_0 lifts_0 frees_0 empties_0)
               (begin
                 (reannotate
                  vs_0
                  (reverse$1
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (fold-var_0 lst_0)
                           (begin
                             (if (not (null? (unwrap lst_0)))
                               (let ((v_0
                                      (if (pair? (unwrap lst_0))
                                        (wrap-car lst_0)
                                        lst_0)))
                                 (let ((rest_0
                                        (if (pair? (unwrap lst_0))
                                          (wrap-cdr lst_0)
                                          null)))
                                   (let ((v_1 v_0))
                                     (let ((fold-var_1
                                            (let ((fold-var_1
                                                   (cons
                                                    (convert-lifted-calls-in-expr_0
                                                     v_1
                                                     lifts_0
                                                     frees_0
                                                     empties_0)
                                                    fold-var_0)))
                                              (values fold-var_1))))
                                       (for-loop_0 fold-var_1 rest_0)))))
                               fold-var_0))))))
                      (for-loop_0 null vs_0)))))))))
           (convert_0
            (|#%name|
             convert
             (lambda (empties_0 frees_0 lifts_0 v_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap v_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'let hd_0) #t #f)
                     (convert-lifted-calls-in-let_0
                      v_0
                      lifts_0
                      frees_0
                      empties_0)
                     (if (if (eq? 'letrec hd_0) #t #f)
                       (convert-lifted-calls-in-letrec_0
                        v_0
                        lifts_0
                        frees_0
                        empties_0)
                       (if (if (eq? 'letrec* hd_0) #t #f)
                         (convert-lifted-calls-in-letrec_0
                          v_0
                          lifts_0
                          frees_0
                          empties_0)
                         (if (let ((p_0 (unwrap v_0)))
                               (if (pair? p_0)
                                 (if (let ((a_0 (car p_0)))
                                       (let ((p_1 (unwrap a_0)))
                                         (if (pair? p_1)
                                           (if (let ((a_1 (car p_1)))
                                                 (let ((app_0
                                                        (unwrap 'letrec)))
                                                   (eq? app_0 (unwrap a_1))))
                                             (let ((a_1 (cdr p_1)))
                                               (let ((p_2 (unwrap a_1)))
                                                 (if (pair? p_2)
                                                   (if (let ((a_2 (car p_2)))
                                                         (let ((p_3
                                                                (unwrap a_2)))
                                                           (if (pair? p_3)
                                                             (if (let ((a_3
                                                                        (car
                                                                         p_3)))
                                                                   (let ((p_4
                                                                          (unwrap
                                                                           a_3)))
                                                                     (if (pair?
                                                                          p_4)
                                                                       (let ((a_4
                                                                              (cdr
                                                                               p_4)))
                                                                         (let ((p_5
                                                                                (unwrap
                                                                                 a_4)))
                                                                           (if (pair?
                                                                                p_5)
                                                                             (let ((a_5
                                                                                    (cdr
                                                                                     p_5)))
                                                                               (let ((app_0
                                                                                      (unwrap
                                                                                       '())))
                                                                                 (eq?
                                                                                  app_0
                                                                                  (unwrap
                                                                                   a_5))))
                                                                             #f)))
                                                                       #f)))
                                                               (let ((a_3
                                                                      (cdr
                                                                       p_3)))
                                                                 (let ((app_0
                                                                        (unwrap
                                                                         '())))
                                                                   (eq?
                                                                    app_0
                                                                    (unwrap
                                                                     a_3))))
                                                               #f)
                                                             #f)))
                                                     (let ((a_2 (cdr p_2)))
                                                       (let ((p_3
                                                              (unwrap a_2)))
                                                         (if (pair? p_3)
                                                           (let ((a_3
                                                                  (cdr p_3)))
                                                             (let ((app_0
                                                                    (unwrap
                                                                     '())))
                                                               (eq?
                                                                app_0
                                                                (unwrap a_3))))
                                                           #f)))
                                                     #f)
                                                   #f)))
                                             #f)
                                           #f)))
                                   (let ((a_0 (cdr p_0))) (wrap-list? a_0))
                                   #f)
                                 #f))
                           (call-with-values
                            (lambda ()
                              (let ((p_0 (unwrap v_0)))
                                (call-with-values
                                 (lambda ()
                                   (let ((a_0 (car p_0)))
                                     (let ((d_0 (cdr (unwrap a_0))))
                                       (let ((p_1 (unwrap d_0)))
                                         (call-with-values
                                          (lambda ()
                                            (let ((a_1 (car p_1)))
                                              (let ((a_2 (car (unwrap a_1))))
                                                (let ((p_2 (unwrap a_2)))
                                                  (let ((id_0
                                                         (let ((a_3 (car p_2)))
                                                           a_3)))
                                                    (let ((rhs_0
                                                           (let ((d_1
                                                                  (cdr p_2)))
                                                             (let ((a_3
                                                                    (car
                                                                     (unwrap
                                                                      d_1))))
                                                               a_3))))
                                                      (let ((id_1 id_0))
                                                        (values
                                                         id_1
                                                         rhs_0))))))))
                                          (case-lambda
                                           ((id_0 rhs_0)
                                            (let ((rator_0
                                                   (let ((d_1 (cdr p_1)))
                                                     (let ((a_1
                                                            (car
                                                             (unwrap d_1))))
                                                       a_1))))
                                              (let ((id_1 id_0) (rhs_1 rhs_0))
                                                (values id_1 rhs_1 rator_0))))
                                           (args
                                            (raise-binding-result-arity-error
                                             2
                                             args))))))))
                                 (case-lambda
                                  ((id_0 rhs_0 rator_0)
                                   (let ((rands_0
                                          (let ((d_0 (cdr p_0)))
                                            (unwrap-list d_0))))
                                     (let ((id_1 id_0)
                                           (rhs_1 rhs_0)
                                           (rator_1 rator_0))
                                       (values id_1 rhs_1 rator_1 rands_0))))
                                  (args
                                   (raise-binding-result-arity-error
                                    3
                                    args))))))
                            (case-lambda
                             ((id_0 rhs_0 rator_0 rands_0)
                              (convert_0
                               empties_0
                               frees_0
                               lifts_0
                               (reannotate
                                v_0
                                (list
                                 'letrec
                                 (list (list id_0 rhs_0))
                                 (list* rator_0 rands_0)))))
                             (args (raise-binding-result-arity-error 4 args))))
                           (if (let ((p_0 (unwrap v_0)))
                                 (if (pair? p_0)
                                   (if (let ((a_0 (car p_0)))
                                         (let ((p_1 (unwrap a_0)))
                                           (if (pair? p_1)
                                             (if (let ((a_1 (car p_1)))
                                                   (let ((app_0
                                                          (unwrap 'letrec*)))
                                                     (eq? app_0 (unwrap a_1))))
                                               (let ((a_1 (cdr p_1)))
                                                 (let ((p_2 (unwrap a_1)))
                                                   (if (pair? p_2)
                                                     (if (let ((a_2 (car p_2)))
                                                           (let ((p_3
                                                                  (unwrap
                                                                   a_2)))
                                                             (if (pair? p_3)
                                                               (if (let ((a_3
                                                                          (car
                                                                           p_3)))
                                                                     (let ((p_4
                                                                            (unwrap
                                                                             a_3)))
                                                                       (if (pair?
                                                                            p_4)
                                                                         (let ((a_4
                                                                                (cdr
                                                                                 p_4)))
                                                                           (let ((p_5
                                                                                  (unwrap
                                                                                   a_4)))
                                                                             (if (pair?
                                                                                  p_5)
                                                                               (let ((a_5
                                                                                      (cdr
                                                                                       p_5)))
                                                                                 (let ((app_0
                                                                                        (unwrap
                                                                                         '())))
                                                                                   (eq?
                                                                                    app_0
                                                                                    (unwrap
                                                                                     a_5))))
                                                                               #f)))
                                                                         #f)))
                                                                 (let ((a_3
                                                                        (cdr
                                                                         p_3)))
                                                                   (let ((app_0
                                                                          (unwrap
                                                                           '())))
                                                                     (eq?
                                                                      app_0
                                                                      (unwrap
                                                                       a_3))))
                                                                 #f)
                                                               #f)))
                                                       (let ((a_2 (cdr p_2)))
                                                         (let ((p_3
                                                                (unwrap a_2)))
                                                           (if (pair? p_3)
                                                             (let ((a_3
                                                                    (cdr p_3)))
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_3))))
                                                             #f)))
                                                       #f)
                                                     #f)))
                                               #f)
                                             #f)))
                                     (let ((a_0 (cdr p_0))) (wrap-list? a_0))
                                     #f)
                                   #f))
                             (call-with-values
                              (lambda ()
                                (let ((p_0 (unwrap v_0)))
                                  (call-with-values
                                   (lambda ()
                                     (let ((a_0 (car p_0)))
                                       (let ((d_0 (cdr (unwrap a_0))))
                                         (let ((p_1 (unwrap d_0)))
                                           (call-with-values
                                            (lambda ()
                                              (let ((a_1 (car p_1)))
                                                (let ((a_2 (car (unwrap a_1))))
                                                  (let ((p_2 (unwrap a_2)))
                                                    (let ((id_0
                                                           (let ((a_3
                                                                  (car p_2)))
                                                             a_3)))
                                                      (let ((rhs_0
                                                             (let ((d_1
                                                                    (cdr p_2)))
                                                               (let ((a_3
                                                                      (car
                                                                       (unwrap
                                                                        d_1))))
                                                                 a_3))))
                                                        (let ((id_1 id_0))
                                                          (values
                                                           id_1
                                                           rhs_0))))))))
                                            (case-lambda
                                             ((id_0 rhs_0)
                                              (let ((rator_0
                                                     (let ((d_1 (cdr p_1)))
                                                       (let ((a_1
                                                              (car
                                                               (unwrap d_1))))
                                                         a_1))))
                                                (let ((id_1 id_0)
                                                      (rhs_1 rhs_0))
                                                  (values
                                                   id_1
                                                   rhs_1
                                                   rator_0))))
                                             (args
                                              (raise-binding-result-arity-error
                                               2
                                               args))))))))
                                   (case-lambda
                                    ((id_0 rhs_0 rator_0)
                                     (let ((rands_0
                                            (let ((d_0 (cdr p_0)))
                                              (unwrap-list d_0))))
                                       (let ((id_1 id_0)
                                             (rhs_1 rhs_0)
                                             (rator_1 rator_0))
                                         (values id_1 rhs_1 rator_1 rands_0))))
                                    (args
                                     (raise-binding-result-arity-error
                                      3
                                      args))))))
                              (case-lambda
                               ((id_0 rhs_0 rator_0 rands_0)
                                (convert_0
                                 empties_0
                                 frees_0
                                 lifts_0
                                 (reannotate
                                  v_0
                                  (list
                                   'letrec*
                                   (list (list id_0 rhs_0))
                                   (list* rator_0 rands_0)))))
                               (args
                                (raise-binding-result-arity-error 4 args))))
                             (if (if (eq? 'lambda hd_0)
                                   (let ((a_0 (cdr (unwrap v_0))))
                                     (let ((p_0 (unwrap a_0)))
                                       (if (pair? p_0) #t #f)))
                                   #f)
                               (call-with-values
                                (lambda ()
                                  (let ((d_0 (cdr (unwrap v_0))))
                                    (let ((p_0 (unwrap d_0)))
                                      (let ((args_0
                                             (let ((a_0 (car p_0))) a_0)))
                                        (let ((body_0
                                               (let ((d_1 (cdr p_0))) d_1)))
                                          (let ((args_1 args_0))
                                            (values args_1 body_0)))))))
                                (case-lambda
                                 ((args_0 body_0)
                                  (lift-if-empty_0
                                   v_0
                                   lifts_0
                                   empties_0
                                   (reannotate
                                    v_0
                                    (list*
                                     'lambda
                                     args_0
                                     (convert-lifted-calls-in-seq/box-mutated_0
                                      body_0
                                      args_0
                                      lifts_0
                                      frees_0
                                      empties_0)))))
                                 (args
                                  (raise-binding-result-arity-error 2 args))))
                               (if (if (eq? 'case-lambda hd_0)
                                     (let ((a_0 (cdr (unwrap v_0))))
                                       (if (wrap-list? a_0)
                                         (begin
                                           (letrec*
                                            ((for-loop_0
                                              (|#%name|
                                               for-loop
                                               (lambda (result_0 lst_0)
                                                 (begin
                                                   (if (not
                                                        (null? (unwrap lst_0)))
                                                     (let ((v_1
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-car lst_0)
                                                              lst_0)))
                                                       (let ((rest_0
                                                              (if (pair?
                                                                   (unwrap
                                                                    lst_0))
                                                                (wrap-cdr
                                                                 lst_0)
                                                                null)))
                                                         (let ((v_2 v_1))
                                                           (let ((result_1
                                                                  (let ((result_1
                                                                         (let ((p_0
                                                                                (unwrap
                                                                                 v_2)))
                                                                           (if (pair?
                                                                                p_0)
                                                                             #t
                                                                             #f))))
                                                                    (values
                                                                     result_1))))
                                                             (if (if (not
                                                                      (let ((x_0
                                                                             (list
                                                                              v_2)))
                                                                        (not
                                                                         result_1)))
                                                                   #t
                                                                   #f)
                                                               (for-loop_0
                                                                result_1
                                                                rest_0)
                                                               result_1)))))
                                                     result_0))))))
                                            (for-loop_0 #t a_0)))
                                         #f))
                                     #f)
                                 (call-with-values
                                  (lambda ()
                                    (let ((d_0 (cdr (unwrap v_0))))
                                      (call-with-values
                                       (lambda ()
                                         (begin
                                           (letrec*
                                            ((for-loop_0
                                              (|#%name|
                                               for-loop
                                               (lambda (argss_0 bodys_0 lst_0)
                                                 (begin
                                                   (if (not
                                                        (null? (unwrap lst_0)))
                                                     (let ((v_1
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-car lst_0)
                                                              lst_0)))
                                                       (let ((rest_0
                                                              (if (pair?
                                                                   (unwrap
                                                                    lst_0))
                                                                (wrap-cdr
                                                                 lst_0)
                                                                null)))
                                                         (let ((v_2 v_1))
                                                           (call-with-values
                                                            (lambda ()
                                                              (call-with-values
                                                               (lambda ()
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (let ((p_0
                                                                           (unwrap
                                                                            v_2)))
                                                                      (let ((argss_1
                                                                             (let ((a_0
                                                                                    (car
                                                                                     p_0)))
                                                                               a_0)))
                                                                        (let ((bodys_1
                                                                               (let ((d_1
                                                                                      (cdr
                                                                                       p_0)))
                                                                                 d_1)))
                                                                          (let ((argss_2
                                                                                 argss_1))
                                                                            (values
                                                                             argss_2
                                                                             bodys_1))))))
                                                                  (case-lambda
                                                                   ((argss42_0
                                                                     bodys43_0)
                                                                    (values
                                                                     (cons
                                                                      argss42_0
                                                                      argss_0)
                                                                     (cons
                                                                      bodys43_0
                                                                      bodys_0)))
                                                                   (args
                                                                    (raise-binding-result-arity-error
                                                                     2
                                                                     args)))))
                                                               (case-lambda
                                                                ((argss_1
                                                                  bodys_1)
                                                                 (values
                                                                  argss_1
                                                                  bodys_1))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))
                                                            (case-lambda
                                                             ((argss_1 bodys_1)
                                                              (for-loop_0
                                                               argss_1
                                                               bodys_1
                                                               rest_0))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               2
                                                               args)))))))
                                                     (values
                                                      argss_0
                                                      bodys_0)))))))
                                            (for-loop_0 null null d_0))))
                                       (case-lambda
                                        ((argss_0 bodys_0)
                                         (let ((app_0 (reverse$1 argss_0)))
                                           (values app_0 (reverse$1 bodys_0))))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))))
                                  (case-lambda
                                   ((argss_0 bodys_0)
                                    (lift-if-empty_0
                                     v_0
                                     lifts_0
                                     empties_0
                                     (reannotate
                                      v_0
                                      (list*
                                       'case-lambda
                                       (reverse$1
                                        (begin
                                          (letrec*
                                           ((for-loop_0
                                             (|#%name|
                                              for-loop
                                              (lambda (fold-var_0 lst_0 lst_1)
                                                (begin
                                                  (if (if (pair? lst_0)
                                                        (pair? lst_1)
                                                        #f)
                                                    (let ((args_0
                                                           (unsafe-car lst_0)))
                                                      (let ((rest_0
                                                             (unsafe-cdr
                                                              lst_0)))
                                                        (let ((body_0
                                                               (unsafe-car
                                                                lst_1)))
                                                          (let ((rest_1
                                                                 (unsafe-cdr
                                                                  lst_1)))
                                                            (let ((fold-var_1
                                                                   (let ((fold-var_1
                                                                          (cons
                                                                           (list*
                                                                            args_0
                                                                            (convert-lifted-calls-in-seq/box-mutated_0
                                                                             body_0
                                                                             args_0
                                                                             lifts_0
                                                                             frees_0
                                                                             empties_0))
                                                                           fold-var_0)))
                                                                     (values
                                                                      fold-var_1))))
                                                              (for-loop_0
                                                               fold-var_1
                                                               rest_0
                                                               rest_1))))))
                                                    fold-var_0))))))
                                           (for-loop_0
                                            null
                                            argss_0
                                            bodys_0))))))))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args))))
                                 (if (if (eq? 'begin hd_0) #t #f)
                                   (let ((vs_0
                                          (let ((d_0 (cdr (unwrap v_0))))
                                            d_0)))
                                     (reannotate
                                      v_0
                                      (list*
                                       'begin
                                       (convert-lifted-calls-in-seq_0
                                        vs_0
                                        lifts_0
                                        frees_0
                                        empties_0))))
                                   (if (if (eq? 'begin0 hd_0) #t #f)
                                     (let ((vs_0
                                            (let ((d_0 (cdr (unwrap v_0))))
                                              d_0)))
                                       (reannotate
                                        v_0
                                        (list*
                                         'begin0
                                         (convert-lifted-calls-in-seq_0
                                          vs_0
                                          lifts_0
                                          frees_0
                                          empties_0))))
                                     (if (if (eq? 'quote hd_0) #t #f)
                                       v_0
                                       (if (if (eq? 'if hd_0)
                                             (let ((a_0 (cdr (unwrap v_0))))
                                               (let ((p_0 (unwrap a_0)))
                                                 (if (pair? p_0)
                                                   (let ((a_1 (cdr p_0)))
                                                     (let ((p_1 (unwrap a_1)))
                                                       (if (pair? p_1)
                                                         (let ((a_2 (cdr p_1)))
                                                           (let ((p_2
                                                                  (unwrap
                                                                   a_2)))
                                                             (if (pair? p_2)
                                                               (let ((a_3
                                                                      (cdr
                                                                       p_2)))
                                                                 (let ((app_0
                                                                        (unwrap
                                                                         '())))
                                                                   (eq?
                                                                    app_0
                                                                    (unwrap
                                                                     a_3))))
                                                               #f)))
                                                         #f)))
                                                   #f)))
                                             #f)
                                         (call-with-values
                                          (lambda ()
                                            (let ((d_0 (cdr (unwrap v_0))))
                                              (let ((p_0 (unwrap d_0)))
                                                (let ((tst_0
                                                       (let ((a_0 (car p_0)))
                                                         a_0)))
                                                  (call-with-values
                                                   (lambda ()
                                                     (let ((d_1 (cdr p_0)))
                                                       (let ((p_1
                                                              (unwrap d_1)))
                                                         (let ((thn_0
                                                                (let ((a_0
                                                                       (car
                                                                        p_1)))
                                                                  a_0)))
                                                           (let ((els_0
                                                                  (let ((d_2
                                                                         (cdr
                                                                          p_1)))
                                                                    (let ((a_0
                                                                           (car
                                                                            (unwrap
                                                                             d_2))))
                                                                      a_0))))
                                                             (let ((thn_1
                                                                    thn_0))
                                                               (values
                                                                thn_1
                                                                els_0)))))))
                                                   (case-lambda
                                                    ((thn_0 els_0)
                                                     (let ((tst_1 tst_0))
                                                       (values
                                                        tst_1
                                                        thn_0
                                                        els_0)))
                                                    (args
                                                     (raise-binding-result-arity-error
                                                      2
                                                      args))))))))
                                          (case-lambda
                                           ((tst_0 thn_0 els_0)
                                            (reannotate
                                             v_0
                                             (let ((app_0
                                                    (convert_0
                                                     empties_0
                                                     frees_0
                                                     lifts_0
                                                     tst_0)))
                                               (let ((app_1
                                                      (convert_0
                                                       empties_0
                                                       frees_0
                                                       lifts_0
                                                       thn_0)))
                                                 (list
                                                  'if
                                                  app_0
                                                  app_1
                                                  (convert_0
                                                   empties_0
                                                   frees_0
                                                   lifts_0
                                                   els_0))))))
                                           (args
                                            (raise-binding-result-arity-error
                                             3
                                             args))))
                                         (if (if (eq?
                                                  'with-continuation-mark*
                                                  hd_0)
                                               (let ((a_0 (cdr (unwrap v_0))))
                                                 (let ((p_0 (unwrap a_0)))
                                                   (if (pair? p_0)
                                                     (let ((a_1 (cdr p_0)))
                                                       (let ((p_1
                                                              (unwrap a_1)))
                                                         (if (pair? p_1)
                                                           (let ((a_2
                                                                  (cdr p_1)))
                                                             (let ((p_2
                                                                    (unwrap
                                                                     a_2)))
                                                               (if (pair? p_2)
                                                                 (let ((a_3
                                                                        (cdr
                                                                         p_2)))
                                                                   (let ((p_3
                                                                          (unwrap
                                                                           a_3)))
                                                                     (if (pair?
                                                                          p_3)
                                                                       (let ((a_4
                                                                              (cdr
                                                                               p_3)))
                                                                         (let ((app_0
                                                                                (unwrap
                                                                                 '())))
                                                                           (eq?
                                                                            app_0
                                                                            (unwrap
                                                                             a_4))))
                                                                       #f)))
                                                                 #f)))
                                                           #f)))
                                                     #f)))
                                               #f)
                                           (call-with-values
                                            (lambda ()
                                              (let ((d_0 (cdr (unwrap v_0))))
                                                (let ((p_0 (unwrap d_0)))
                                                  (let ((mode_0
                                                         (let ((a_0 (car p_0)))
                                                           a_0)))
                                                    (call-with-values
                                                     (lambda ()
                                                       (let ((d_1 (cdr p_0)))
                                                         (let ((p_1
                                                                (unwrap d_1)))
                                                           (let ((key_0
                                                                  (let ((a_0
                                                                         (car
                                                                          p_1)))
                                                                    a_0)))
                                                             (call-with-values
                                                              (lambda ()
                                                                (let ((d_2
                                                                       (cdr
                                                                        p_1)))
                                                                  (let ((p_2
                                                                         (unwrap
                                                                          d_2)))
                                                                    (let ((val_0
                                                                           (let ((a_0
                                                                                  (car
                                                                                   p_2)))
                                                                             a_0)))
                                                                      (let ((body_0
                                                                             (let ((d_3
                                                                                    (cdr
                                                                                     p_2)))
                                                                               (let ((a_0
                                                                                      (car
                                                                                       (unwrap
                                                                                        d_3))))
                                                                                 a_0))))
                                                                        (let ((val_1
                                                                               val_0))
                                                                          (values
                                                                           val_1
                                                                           body_0)))))))
                                                              (case-lambda
                                                               ((val_0 body_0)
                                                                (let ((key_1
                                                                       key_0))
                                                                  (values
                                                                   key_1
                                                                   val_0
                                                                   body_0)))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 2
                                                                 args))))))))
                                                     (case-lambda
                                                      ((key_0 val_0 body_0)
                                                       (let ((mode_1 mode_0))
                                                         (values
                                                          mode_1
                                                          key_0
                                                          val_0
                                                          body_0)))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        3
                                                        args))))))))
                                            (case-lambda
                                             ((mode_0 key_0 val_0 body_0)
                                              (reannotate
                                               v_0
                                               (let ((app_0
                                                      (convert_0
                                                       empties_0
                                                       frees_0
                                                       lifts_0
                                                       key_0)))
                                                 (let ((app_1
                                                        (convert_0
                                                         empties_0
                                                         frees_0
                                                         lifts_0
                                                         val_0)))
                                                   (list
                                                    'with-continuation-mark*
                                                    mode_0
                                                    app_0
                                                    app_1
                                                    (convert_0
                                                     empties_0
                                                     frees_0
                                                     lifts_0
                                                     body_0))))))
                                             (args
                                              (raise-binding-result-arity-error
                                               4
                                               args))))
                                           (if (if (eq? 'set! hd_0)
                                                 (let ((a_0
                                                        (cdr (unwrap v_0))))
                                                   (let ((p_0 (unwrap a_0)))
                                                     (if (pair? p_0)
                                                       (let ((a_1 (cdr p_0)))
                                                         (let ((p_1
                                                                (unwrap a_1)))
                                                           (if (pair? p_1)
                                                             (let ((a_2
                                                                    (cdr p_1)))
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_2))))
                                                             #f)))
                                                       #f)))
                                                 #f)
                                             (call-with-values
                                              (lambda ()
                                                (let ((d_0 (cdr (unwrap v_0))))
                                                  (let ((p_0 (unwrap d_0)))
                                                    (let ((id_0
                                                           (let ((a_0
                                                                  (car p_0)))
                                                             a_0)))
                                                      (let ((rhs_0
                                                             (let ((d_1
                                                                    (cdr p_0)))
                                                               (let ((a_0
                                                                      (car
                                                                       (unwrap
                                                                        d_1))))
                                                                 a_0))))
                                                        (let ((id_1 id_0))
                                                          (values
                                                           id_1
                                                           rhs_0)))))))
                                              (case-lambda
                                               ((id_0 rhs_0)
                                                (let ((info_0
                                                       (hash-ref
                                                        lifts_0
                                                        (unwrap id_0)
                                                        #f)))
                                                  (if (indirected? info_0)
                                                    (reannotate
                                                     v_0
                                                     (if (indirected-check?
                                                          info_0)
                                                       (list
                                                        'set-box!/check-undefined
                                                        id_0
                                                        (convert_0
                                                         empties_0
                                                         frees_0
                                                         lifts_0
                                                         rhs_0)
                                                        (list 'quote id_0))
                                                       (list
                                                        'unsafe-set-box*!
                                                        id_0
                                                        (convert_0
                                                         empties_0
                                                         frees_0
                                                         lifts_0
                                                         rhs_0))))
                                                    (reannotate
                                                     v_0
                                                     (list
                                                      'set!
                                                      id_0
                                                      (convert_0
                                                       empties_0
                                                       frees_0
                                                       lifts_0
                                                       rhs_0))))))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args))))
                                             (if (if (eq?
                                                      '|#%variable-reference|
                                                      hd_0)
                                                   #t
                                                   #f)
                                               (error
                                                'internal-error
                                                "lift: unexpected variable reference")
                                               (if (let ((p_0 (unwrap v_0)))
                                                     (if (pair? p_0) #t #f))
                                                 (call-with-values
                                                  (lambda ()
                                                    (let ((p_0 (unwrap v_0)))
                                                      (let ((rator_0
                                                             (let ((a_0
                                                                    (car p_0)))
                                                               a_0)))
                                                        (let ((rands_0
                                                               (let ((d_0
                                                                      (cdr
                                                                       p_0)))
                                                                 d_0)))
                                                          (let ((rator_1
                                                                 rator_0))
                                                            (values
                                                             rator_1
                                                             rands_0))))))
                                                  (case-lambda
                                                   ((rator_0 rands_0)
                                                    (let ((rands_1
                                                           (convert-lifted-calls-in-seq_0
                                                            rands_0
                                                            lifts_0
                                                            frees_0
                                                            empties_0)))
                                                      (let ((f_0
                                                             (unwrap rator_0)))
                                                        (let ((c3_0
                                                               (if (symbol?
                                                                    f_0)
                                                                 (let ((p_0
                                                                        (hash-ref
                                                                         lifts_0
                                                                         f_0
                                                                         #f)))
                                                                   (if (liftable?
                                                                        p_0)
                                                                     p_0
                                                                     #f))
                                                                 #f)))
                                                          (if c3_0
                                                            (reannotate
                                                             v_0
                                                             (list*
                                                              rator_0
                                                              (qq-append
                                                               (liftable-frees
                                                                c3_0)
                                                               rands_1)))
                                                            (reannotate
                                                             v_0
                                                             (list*
                                                              (convert_0
                                                               empties_0
                                                               frees_0
                                                               lifts_0
                                                               rator_0)
                                                              rands_1)))))))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args))))
                                                 (let ((var_0 (unwrap v_0)))
                                                   (let ((info_0
                                                          (if (symbol? var_0)
                                                            (hash-ref
                                                             lifts_0
                                                             var_0
                                                             #f)
                                                            #f)))
                                                     (if (indirected? info_0)
                                                       (reannotate
                                                        v_0
                                                        (if (indirected-check?
                                                             info_0)
                                                          (list
                                                           'unbox/check-undefined
                                                           v_0
                                                           (list 'quote v_0))
                                                          (list
                                                           'unsafe-unbox*
                                                           v_0)))
                                                       v_0)))))))))))))))))))))))
           (extract-lifted-bindings_0
            (|#%name|
             extract-lifted-bindings
             (lambda (lifts_0 empties_0)
               (begin
                 (let ((liftables_0
                        (let ((temp48_0
                               (reverse$1
                                (begin
                                  (letrec*
                                   ((for-loop_0
                                     (|#%name|
                                      for-loop
                                      (lambda (fold-var_0 i_0)
                                        (begin
                                          (if i_0
                                            (call-with-values
                                             (lambda ()
                                               (hash-iterate-key+value
                                                lifts_0
                                                i_0))
                                             (case-lambda
                                              ((f_0 proc_0)
                                               (let ((fold-var_1
                                                      (if (liftable? proc_0)
                                                        (let ((fold-var_1
                                                               (cons
                                                                (cons
                                                                 f_0
                                                                 proc_0)
                                                                fold-var_0)))
                                                          (values fold-var_1))
                                                        fold-var_0)))
                                                 (for-loop_0
                                                  fold-var_1
                                                  (hash-iterate-next
                                                   lifts_0
                                                   i_0))))
                                              (args
                                               (raise-binding-result-arity-error
                                                2
                                                args))))
                                            fold-var_0))))))
                                   (for-loop_0
                                    null
                                    (hash-iterate-first lifts_0)))))))
                          (sort.1 #f car temp48_0 symbol<?))))
                   (reverse$1
                    (begin
                      (letrec*
                       ((for-loop_0
                         (|#%name|
                          for-loop
                          (lambda (fold-var_0 lst_0)
                            (begin
                              (if (pair? lst_0)
                                (let ((f+proc_0 (unsafe-car lst_0)))
                                  (let ((rest_0 (unsafe-cdr lst_0)))
                                    (let ((fold-var_1
                                           (let ((fold-var_1
                                                  (cons
                                                   (let ((f_0 (car f+proc_0)))
                                                     (let ((proc_0
                                                            (cdr f+proc_0)))
                                                       (let ((new-args_0
                                                              (liftable-frees
                                                               proc_0)))
                                                         (let ((frees_0
                                                                (begin
                                                                  (letrec*
                                                                   ((for-loop_1
                                                                     (|#%name|
                                                                      for-loop
                                                                      (lambda (table_0
                                                                               lst_1)
                                                                        (begin
                                                                          (if (pair?
                                                                               lst_1)
                                                                            (let ((arg_0
                                                                                   (unsafe-car
                                                                                    lst_1)))
                                                                              (let ((rest_1
                                                                                     (unsafe-cdr
                                                                                      lst_1)))
                                                                                (let ((table_1
                                                                                       (let ((table_1
                                                                                              (call-with-values
                                                                                               (lambda ()
                                                                                                 (values
                                                                                                  arg_0
                                                                                                  #t))
                                                                                               (case-lambda
                                                                                                ((key_0
                                                                                                  val_0)
                                                                                                 (hash-set
                                                                                                  table_0
                                                                                                  key_0
                                                                                                  val_0))
                                                                                                (args
                                                                                                 (raise-binding-result-arity-error
                                                                                                  2
                                                                                                  args))))))
                                                                                         (values
                                                                                          table_1))))
                                                                                  (for-loop_1
                                                                                   table_1
                                                                                   rest_1))))
                                                                            table_0))))))
                                                                   (for-loop_1
                                                                    hash2725
                                                                    new-args_0)))))
                                                           (let ((rhs_0
                                                                  (liftable-expr
                                                                   proc_0)))
                                                             (list
                                                              f_0
                                                              (let ((hd_0
                                                                     (let ((p_0
                                                                            (unwrap
                                                                             rhs_0)))
                                                                       (if (pair?
                                                                            p_0)
                                                                         (unwrap
                                                                          (car
                                                                           p_0))
                                                                         #f))))
                                                                (if (if (eq?
                                                                         'lambda
                                                                         hd_0)
                                                                      (let ((a_0
                                                                             (cdr
                                                                              (unwrap
                                                                               rhs_0))))
                                                                        (let ((p_0
                                                                               (unwrap
                                                                                a_0)))
                                                                          (if (pair?
                                                                               p_0)
                                                                            #t
                                                                            #f)))
                                                                      #f)
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (let ((d_0
                                                                            (cdr
                                                                             (unwrap
                                                                              rhs_0))))
                                                                       (let ((p_0
                                                                              (unwrap
                                                                               d_0)))
                                                                         (let ((args_0
                                                                                (let ((a_0
                                                                                       (car
                                                                                        p_0)))
                                                                                  a_0)))
                                                                           (let ((body_0
                                                                                  (let ((d_1
                                                                                         (cdr
                                                                                          p_0)))
                                                                                    d_1)))
                                                                             (let ((args_1
                                                                                    args_0))
                                                                               (values
                                                                                args_1
                                                                                body_0)))))))
                                                                   (case-lambda
                                                                    ((args_0
                                                                      body_0)
                                                                     (let ((body_1
                                                                            (convert-lifted-calls-in-seq/box-mutated_0
                                                                             body_0
                                                                             args_0
                                                                             lifts_0
                                                                             frees_0
                                                                             empties_0)))
                                                                       (reannotate
                                                                        rhs_0
                                                                        (list*
                                                                         'lambda
                                                                         (append
                                                                          new-args_0
                                                                          args_0)
                                                                         body_1))))
                                                                    (args
                                                                     (raise-binding-result-arity-error
                                                                      2
                                                                      args))))
                                                                  (if (if (eq?
                                                                           'case-lambda
                                                                           hd_0)
                                                                        (let ((a_0
                                                                               (cdr
                                                                                (unwrap
                                                                                 rhs_0))))
                                                                          (if (wrap-list?
                                                                               a_0)
                                                                            (begin
                                                                              (letrec*
                                                                               ((for-loop_1
                                                                                 (|#%name|
                                                                                  for-loop
                                                                                  (lambda (result_0
                                                                                           lst_1)
                                                                                    (begin
                                                                                      (if (not
                                                                                           (null?
                                                                                            (unwrap
                                                                                             lst_1)))
                                                                                        (let ((v_0
                                                                                               (if (pair?
                                                                                                    (unwrap
                                                                                                     lst_1))
                                                                                                 (wrap-car
                                                                                                  lst_1)
                                                                                                 lst_1)))
                                                                                          (let ((rest_1
                                                                                                 (if (pair?
                                                                                                      (unwrap
                                                                                                       lst_1))
                                                                                                   (wrap-cdr
                                                                                                    lst_1)
                                                                                                   null)))
                                                                                            (let ((v_1
                                                                                                   v_0))
                                                                                              (let ((result_1
                                                                                                     (let ((result_1
                                                                                                            (let ((p_0
                                                                                                                   (unwrap
                                                                                                                    v_1)))
                                                                                                              (if (pair?
                                                                                                                   p_0)
                                                                                                                #t
                                                                                                                #f))))
                                                                                                       (values
                                                                                                        result_1))))
                                                                                                (if (if (not
                                                                                                         (let ((x_0
                                                                                                                (list
                                                                                                                 v_1)))
                                                                                                           (not
                                                                                                            result_1)))
                                                                                                      #t
                                                                                                      #f)
                                                                                                  (for-loop_1
                                                                                                   result_1
                                                                                                   rest_1)
                                                                                                  result_1)))))
                                                                                        result_0))))))
                                                                               (for-loop_1
                                                                                #t
                                                                                a_0)))
                                                                            #f))
                                                                        #f)
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (let ((d_0
                                                                              (cdr
                                                                               (unwrap
                                                                                rhs_0))))
                                                                         (call-with-values
                                                                          (lambda ()
                                                                            (begin
                                                                              (letrec*
                                                                               ((for-loop_1
                                                                                 (|#%name|
                                                                                  for-loop
                                                                                  (lambda (argss_0
                                                                                           bodys_0
                                                                                           lst_1)
                                                                                    (begin
                                                                                      (if (not
                                                                                           (null?
                                                                                            (unwrap
                                                                                             lst_1)))
                                                                                        (let ((v_0
                                                                                               (if (pair?
                                                                                                    (unwrap
                                                                                                     lst_1))
                                                                                                 (wrap-car
                                                                                                  lst_1)
                                                                                                 lst_1)))
                                                                                          (let ((rest_1
                                                                                                 (if (pair?
                                                                                                      (unwrap
                                                                                                       lst_1))
                                                                                                   (wrap-cdr
                                                                                                    lst_1)
                                                                                                   null)))
                                                                                            (let ((v_1
                                                                                                   v_0))
                                                                                              (call-with-values
                                                                                               (lambda ()
                                                                                                 (call-with-values
                                                                                                  (lambda ()
                                                                                                    (call-with-values
                                                                                                     (lambda ()
                                                                                                       (let ((p_0
                                                                                                              (unwrap
                                                                                                               v_1)))
                                                                                                         (let ((argss_1
                                                                                                                (let ((a_0
                                                                                                                       (car
                                                                                                                        p_0)))
                                                                                                                  a_0)))
                                                                                                           (let ((bodys_1
                                                                                                                  (let ((d_1
                                                                                                                         (cdr
                                                                                                                          p_0)))
                                                                                                                    d_1)))
                                                                                                             (let ((argss_2
                                                                                                                    argss_1))
                                                                                                               (values
                                                                                                                argss_2
                                                                                                                bodys_1))))))
                                                                                                     (case-lambda
                                                                                                      ((argss51_0
                                                                                                        bodys52_0)
                                                                                                       (values
                                                                                                        (cons
                                                                                                         argss51_0
                                                                                                         argss_0)
                                                                                                        (cons
                                                                                                         bodys52_0
                                                                                                         bodys_0)))
                                                                                                      (args
                                                                                                       (raise-binding-result-arity-error
                                                                                                        2
                                                                                                        args)))))
                                                                                                  (case-lambda
                                                                                                   ((argss_1
                                                                                                     bodys_1)
                                                                                                    (values
                                                                                                     argss_1
                                                                                                     bodys_1))
                                                                                                   (args
                                                                                                    (raise-binding-result-arity-error
                                                                                                     2
                                                                                                     args)))))
                                                                                               (case-lambda
                                                                                                ((argss_1
                                                                                                  bodys_1)
                                                                                                 (for-loop_1
                                                                                                  argss_1
                                                                                                  bodys_1
                                                                                                  rest_1))
                                                                                                (args
                                                                                                 (raise-binding-result-arity-error
                                                                                                  2
                                                                                                  args)))))))
                                                                                        (values
                                                                                         argss_0
                                                                                         bodys_0)))))))
                                                                               (for-loop_1
                                                                                null
                                                                                null
                                                                                d_0))))
                                                                          (case-lambda
                                                                           ((argss_0
                                                                             bodys_0)
                                                                            (let ((app_0
                                                                                   (reverse$1
                                                                                    argss_0)))
                                                                              (values
                                                                               app_0
                                                                               (reverse$1
                                                                                bodys_0))))
                                                                           (args
                                                                            (raise-binding-result-arity-error
                                                                             2
                                                                             args))))))
                                                                     (case-lambda
                                                                      ((argss_0
                                                                        bodys_0)
                                                                       (reannotate
                                                                        rhs_0
                                                                        (list*
                                                                         'case-lambda
                                                                         (reverse$1
                                                                          (begin
                                                                            (letrec*
                                                                             ((for-loop_1
                                                                               (|#%name|
                                                                                for-loop
                                                                                (lambda (fold-var_1
                                                                                         lst_1
                                                                                         lst_2)
                                                                                  (begin
                                                                                    (if (if (pair?
                                                                                             lst_1)
                                                                                          (pair?
                                                                                           lst_2)
                                                                                          #f)
                                                                                      (let ((args_0
                                                                                             (unsafe-car
                                                                                              lst_1)))
                                                                                        (let ((rest_1
                                                                                               (unsafe-cdr
                                                                                                lst_1)))
                                                                                          (let ((body_0
                                                                                                 (unsafe-car
                                                                                                  lst_2)))
                                                                                            (let ((rest_2
                                                                                                   (unsafe-cdr
                                                                                                    lst_2)))
                                                                                              (let ((fold-var_2
                                                                                                     (let ((fold-var_2
                                                                                                            (cons
                                                                                                             (let ((body_1
                                                                                                                    (convert-lifted-calls-in-seq/box-mutated_0
                                                                                                                     body_0
                                                                                                                     args_0
                                                                                                                     lifts_0
                                                                                                                     frees_0
                                                                                                                     empties_0)))
                                                                                                               (list*
                                                                                                                (append
                                                                                                                 new-args_0
                                                                                                                 args_0)
                                                                                                                body_1))
                                                                                                             fold-var_1)))
                                                                                                       (values
                                                                                                        fold-var_2))))
                                                                                                (for-loop_1
                                                                                                 fold-var_2
                                                                                                 rest_1
                                                                                                 rest_2))))))
                                                                                      fold-var_1))))))
                                                                             (for-loop_1
                                                                              null
                                                                              argss_0
                                                                              bodys_0)))))))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args))))
                                                                    (error
                                                                     'match
                                                                     "failed ~e"
                                                                     rhs_0))))))))))
                                                   fold-var_0)))
                                             (values fold-var_1))))
                                      (for-loop_0 fold-var_1 rest_0))))
                                fold-var_0))))))
                       (for-loop_0 null liftables_0)))))))))
           (find-let-loops_0
            (|#%name|
             find-let-loops
             (lambda (find-loops_0 v_0 lifts_0 loop-if-tail_0 loops_0)
               (begin
                 (if (let ((p_0 (unwrap v_0)))
                       (if (pair? p_0)
                         (let ((a_0 (cdr p_0)))
                           (let ((p_1 (unwrap a_0)))
                             (if (pair? p_1)
                               (if (let ((a_1 (car p_1)))
                                     (if (wrap-list? a_1)
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (result_0 lst_0)
                                               (begin
                                                 (if (not
                                                      (null? (unwrap lst_0)))
                                                   (let ((v_1
                                                          (if (pair?
                                                               (unwrap lst_0))
                                                            (wrap-car lst_0)
                                                            lst_0)))
                                                     (let ((rest_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-cdr lst_0)
                                                              null)))
                                                       (let ((v_2 v_1))
                                                         (let ((result_1
                                                                (let ((result_1
                                                                       (let ((p_2
                                                                              (unwrap
                                                                               v_2)))
                                                                         (if (pair?
                                                                              p_2)
                                                                           (let ((a_2
                                                                                  (cdr
                                                                                   p_2)))
                                                                             (let ((p_3
                                                                                    (unwrap
                                                                                     a_2)))
                                                                               (if (pair?
                                                                                    p_3)
                                                                                 (let ((a_3
                                                                                        (cdr
                                                                                         p_3)))
                                                                                   (let ((app_0
                                                                                          (unwrap
                                                                                           '())))
                                                                                     (eq?
                                                                                      app_0
                                                                                      (unwrap
                                                                                       a_3))))
                                                                                 #f)))
                                                                           #f))))
                                                                  (values
                                                                   result_1))))
                                                           (if (if (not
                                                                    (let ((x_0
                                                                           (list
                                                                            v_2)))
                                                                      (not
                                                                       result_1)))
                                                                 #t
                                                                 #f)
                                                             (for-loop_0
                                                              result_1
                                                              rest_0)
                                                             result_1)))))
                                                   result_0))))))
                                          (for-loop_0 #t a_1)))
                                       #f))
                                 #t
                                 #f)
                               #f)))
                         #f))
                   (call-with-values
                    (lambda ()
                      (let ((d_0 (cdr (unwrap v_0))))
                        (let ((p_0 (unwrap d_0)))
                          (let ((rhss_0
                                 (let ((a_0 (car p_0)))
                                   (let ((rhss_0
                                          (begin
                                            (letrec*
                                             ((for-loop_0
                                               (|#%name|
                                                for-loop
                                                (lambda (rhss_0 lst_0)
                                                  (begin
                                                    (if (not
                                                         (null?
                                                          (unwrap lst_0)))
                                                      (let ((v_1
                                                             (if (pair?
                                                                  (unwrap
                                                                   lst_0))
                                                               (wrap-car lst_0)
                                                               lst_0)))
                                                        (let ((rest_0
                                                               (if (pair?
                                                                    (unwrap
                                                                     lst_0))
                                                                 (wrap-cdr
                                                                  lst_0)
                                                                 null)))
                                                          (let ((v_2 v_1))
                                                            (let ((rhss_1
                                                                   (let ((rhss_1
                                                                          (let ((rhss37_0
                                                                                 (let ((d_1
                                                                                        (cdr
                                                                                         (unwrap
                                                                                          v_2))))
                                                                                   (let ((a_1
                                                                                          (car
                                                                                           (unwrap
                                                                                            d_1))))
                                                                                     a_1))))
                                                                            (cons
                                                                             rhss37_0
                                                                             rhss_0))))
                                                                     (values
                                                                      rhss_1))))
                                                              (for-loop_0
                                                               rhss_1
                                                               rest_0)))))
                                                      rhss_0))))))
                                             (for-loop_0 null a_0)))))
                                     (reverse$1 rhss_0)))))
                            (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                              (let ((rhss_1 rhss_0))
                                (values rhss_1 body_0)))))))
                    (case-lambda
                     ((rhss_0 body_0)
                      (let ((new-loops_0
                             (begin
                               (letrec*
                                ((for-loop_0
                                  (|#%name|
                                   for-loop
                                   (lambda (loops_1 lst_0)
                                     (begin
                                       (if (pair? lst_0)
                                         (let ((rhs_0 (unsafe-car lst_0)))
                                           (let ((rest_0 (unsafe-cdr lst_0)))
                                             (let ((loops_2
                                                    (let ((loops_2
                                                           (find-loops_0
                                                            rhs_0
                                                            lifts_0
                                                            hash2610
                                                            loops_1)))
                                                      (values loops_2))))
                                               (for-loop_0 loops_2 rest_0))))
                                         loops_1))))))
                                (for-loop_0 loops_0 rhss_0)))))
                        (find-seq-loops_0
                         find-loops_0
                         body_0
                         lifts_0
                         loop-if-tail_0
                         new-loops_0)))
                     (args (raise-binding-result-arity-error 2 args))))
                   (error 'match "failed ~e" v_0))))))
           (find-letrec-loops_0
            (|#%name|
             find-letrec-loops
             (lambda (find-loops_0 v_0 lifts_0 loop-if-tail_0 loops_0)
               (begin
                 (if (let ((p_0 (unwrap v_0)))
                       (if (pair? p_0)
                         (let ((a_0 (cdr p_0)))
                           (let ((p_1 (unwrap a_0)))
                             (if (pair? p_1)
                               (if (let ((a_1 (car p_1)))
                                     (let ((p_2 (unwrap a_1)))
                                       (if (pair? p_2)
                                         (if (let ((a_2 (car p_2)))
                                               (let ((p_3 (unwrap a_2)))
                                                 (if (pair? p_3)
                                                   (let ((a_3 (cdr p_3)))
                                                     (let ((p_4 (unwrap a_3)))
                                                       (if (pair? p_4)
                                                         (let ((a_4 (cdr p_4)))
                                                           (let ((app_0
                                                                  (unwrap
                                                                   '())))
                                                             (eq?
                                                              app_0
                                                              (unwrap a_4))))
                                                         #f)))
                                                   #f)))
                                           (let ((a_2 (cdr p_2)))
                                             (let ((app_0 (unwrap '())))
                                               (eq? app_0 (unwrap a_2))))
                                           #f)
                                         #f)))
                                 (let ((a_1 (cdr p_1)))
                                   (let ((p_2 (unwrap a_1)))
                                     (if (pair? p_2)
                                       (if (let ((a_2 (car p_2)))
                                             (let ((p_3 (unwrap a_2)))
                                               (if (pair? p_3) #t #f)))
                                         (let ((a_2 (cdr p_2)))
                                           (let ((app_0 (unwrap '())))
                                             (eq? app_0 (unwrap a_2))))
                                         #f)
                                       #f)))
                                 #f)
                               #f)))
                         #f))
                   (call-with-values
                    (lambda ()
                      (let ((d_0 (cdr (unwrap v_0))))
                        (let ((p_0 (unwrap d_0)))
                          (call-with-values
                           (lambda ()
                             (let ((a_0 (car p_0)))
                               (let ((a_1 (car (unwrap a_0))))
                                 (let ((p_1 (unwrap a_1)))
                                   (let ((id_0 (let ((a_2 (car p_1))) a_2)))
                                     (let ((rhs_0
                                            (let ((d_1 (cdr p_1)))
                                              (let ((a_2 (car (unwrap d_1))))
                                                a_2))))
                                       (let ((id_1 id_0))
                                         (values id_1 rhs_0))))))))
                           (case-lambda
                            ((id_0 rhs_0)
                             (call-with-values
                              (lambda ()
                                (let ((d_1 (cdr p_0)))
                                  (let ((a_0 (car (unwrap d_1))))
                                    (let ((p_1 (unwrap a_0)))
                                      (let ((id2_0
                                             (let ((a_1 (car p_1))) a_1)))
                                        (let ((rands_0
                                               (let ((d_2 (cdr p_1))) d_2)))
                                          (let ((id2_1 id2_0))
                                            (values id2_1 rands_0))))))))
                              (case-lambda
                               ((id2_0 rands_0)
                                (let ((id_1 id_0) (rhs_1 rhs_0))
                                  (values id_1 rhs_1 id2_0 rands_0)))
                               (args
                                (raise-binding-result-arity-error 2 args)))))
                            (args
                             (raise-binding-result-arity-error 2 args)))))))
                    (case-lambda
                     ((id_0 rhs_0 id2_0 rands_0)
                      (let ((u-id_0 (unwrap id_0)))
                        (if (if (eq? (unwrap id2_0) u-id_0)
                              (hash-ref lifts_0 u-id_0 #f)
                              #f)
                          (let ((loops_1 (hash-set loops_0 u-id_0 #t)))
                            (let ((loops_2
                                   (begin
                                     (letrec*
                                      ((for-loop_0
                                        (|#%name|
                                         for-loop
                                         (lambda (loops_2 lst_0)
                                           (begin
                                             (if (pair? lst_0)
                                               (let ((rand_0
                                                      (unsafe-car lst_0)))
                                                 (let ((rest_0
                                                        (unsafe-cdr lst_0)))
                                                   (let ((loops_3
                                                          (let ((loops_3
                                                                 (find-loops_0
                                                                  rand_0
                                                                  lifts_0
                                                                  hash2610
                                                                  loops_2)))
                                                            (values loops_3))))
                                                     (for-loop_0
                                                      loops_3
                                                      rest_0))))
                                               loops_2))))))
                                      (for-loop_0 loops_1 rands_0)))))
                              (if (not (hash-ref loops_2 u-id_0 #f))
                                (find-loops_0 rhs_0 hash2610 loops_2)
                                (let ((new-loop-if-tail_0
                                       (hash-set
                                        (begin
                                          (letrec*
                                           ((for-loop_0
                                             (|#%name|
                                              for-loop
                                              (lambda (table_0 i_0)
                                                (begin
                                                  (if i_0
                                                    (call-with-values
                                                     (lambda ()
                                                       (hash-iterate-key+value
                                                        loop-if-tail_0
                                                        i_0))
                                                     (case-lambda
                                                      ((id_1 bx_0)
                                                       (let ((table_1
                                                              (let ((table_1
                                                                     (call-with-values
                                                                      (lambda ()
                                                                        (values
                                                                         id_1
                                                                         (box
                                                                          #f)))
                                                                      (case-lambda
                                                                       ((key_0
                                                                         val_0)
                                                                        (hash-set
                                                                         table_0
                                                                         key_0
                                                                         val_0))
                                                                       (args
                                                                        (raise-binding-result-arity-error
                                                                         2
                                                                         args))))))
                                                                (values
                                                                 table_1))))
                                                         (for-loop_0
                                                          table_1
                                                          (hash-iterate-next
                                                           loop-if-tail_0
                                                           i_0))))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args))))
                                                    table_0))))))
                                           (for-loop_0
                                            hash2610
                                            (hash-iterate-first
                                             loop-if-tail_0))))
                                        u-id_0
                                        (box #f))))
                                  (let ((new-loops_0
                                         (find-loops-in-tail-called_0
                                          find-loops_0
                                          rhs_0
                                          lifts_0
                                          new-loop-if-tail_0
                                          loops_2)))
                                    (if (hash-ref new-loops_0 u-id_0 #f)
                                      new-loops_0
                                      (begin
                                        (letrec*
                                         ((for-loop_0
                                           (|#%name|
                                            for-loop
                                            (lambda (loops_3 i_0)
                                              (begin
                                                (if i_0
                                                  (call-with-values
                                                   (lambda ()
                                                     (hash-iterate-key+value
                                                      new-loop-if-tail_0
                                                      i_0))
                                                   (case-lambda
                                                    ((id_1 bx_0)
                                                     (let ((loops_4
                                                            (let ((loops_4
                                                                   (if (unbox
                                                                        bx_0)
                                                                     (hash-remove
                                                                      loops_3
                                                                      id_1)
                                                                     loops_3)))
                                                              (values
                                                               loops_4))))
                                                       (for-loop_0
                                                        loops_4
                                                        (hash-iterate-next
                                                         new-loop-if-tail_0
                                                         i_0))))
                                                    (args
                                                     (raise-binding-result-arity-error
                                                      2
                                                      args))))
                                                  loops_3))))))
                                         (for-loop_0
                                          new-loops_0
                                          (hash-iterate-first
                                           new-loop-if-tail_0))))))))))
                          (find-let-loops_0
                           find-loops_0
                           v_0
                           lifts_0
                           loop-if-tail_0
                           loops_0))))
                     (args (raise-binding-result-arity-error 4 args))))
                   (find-let-loops_0
                    find-loops_0
                    v_0
                    lifts_0
                    loop-if-tail_0
                    loops_0))))))
           (find-loops-in-tail-called_0
            (|#%name|
             find-loops-in-tail-called
             (lambda (find-loops_0 v_0 lifts_0 loop-if-tail_0 loops_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap v_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'lambda hd_0)
                         (let ((a_0 (cdr (unwrap v_0))))
                           (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
                         #f)
                     (call-with-values
                      (lambda ()
                        (let ((d_0 (cdr (unwrap v_0))))
                          (let ((p_0 (unwrap d_0)))
                            (let ((args_0 (let ((a_0 (car p_0))) a_0)))
                              (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                                (let ((args_1 args_0))
                                  (values args_1 body_0)))))))
                      (case-lambda
                       ((args_0 body_0)
                        (find-seq-loops_0
                         find-loops_0
                         body_0
                         lifts_0
                         loop-if-tail_0
                         loops_0))
                       (args (raise-binding-result-arity-error 2 args))))
                     (if (if (eq? 'case-lambda hd_0)
                           (let ((a_0 (cdr (unwrap v_0))))
                             (if (wrap-list? a_0)
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (result_0 lst_0)
                                       (begin
                                         (if (not (null? (unwrap lst_0)))
                                           (let ((v_1
                                                  (if (pair? (unwrap lst_0))
                                                    (wrap-car lst_0)
                                                    lst_0)))
                                             (let ((rest_0
                                                    (if (pair? (unwrap lst_0))
                                                      (wrap-cdr lst_0)
                                                      null)))
                                               (let ((v_2 v_1))
                                                 (let ((result_1
                                                        (let ((result_1
                                                               (let ((p_0
                                                                      (unwrap
                                                                       v_2)))
                                                                 (if (pair?
                                                                      p_0)
                                                                   #t
                                                                   #f))))
                                                          (values result_1))))
                                                   (if (if (not
                                                            (let ((x_0
                                                                   (list v_2)))
                                                              (not result_1)))
                                                         #t
                                                         #f)
                                                     (for-loop_0
                                                      result_1
                                                      rest_0)
                                                     result_1)))))
                                           result_0))))))
                                  (for-loop_0 #t a_0)))
                               #f))
                           #f)
                       (call-with-values
                        (lambda ()
                          (let ((d_0 (cdr (unwrap v_0))))
                            (call-with-values
                             (lambda ()
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (argss_0 bodys_0 lst_0)
                                       (begin
                                         (if (not (null? (unwrap lst_0)))
                                           (let ((v_1
                                                  (if (pair? (unwrap lst_0))
                                                    (wrap-car lst_0)
                                                    lst_0)))
                                             (let ((rest_0
                                                    (if (pair? (unwrap lst_0))
                                                      (wrap-cdr lst_0)
                                                      null)))
                                               (let ((v_2 v_1))
                                                 (call-with-values
                                                  (lambda ()
                                                    (call-with-values
                                                     (lambda ()
                                                       (call-with-values
                                                        (lambda ()
                                                          (let ((p_0
                                                                 (unwrap v_2)))
                                                            (let ((argss_1
                                                                   (let ((a_0
                                                                          (car
                                                                           p_0)))
                                                                     a_0)))
                                                              (let ((bodys_1
                                                                     (let ((d_1
                                                                            (cdr
                                                                             p_0)))
                                                                       d_1)))
                                                                (let ((argss_2
                                                                       argss_1))
                                                                  (values
                                                                   argss_2
                                                                   bodys_1))))))
                                                        (case-lambda
                                                         ((argss38_0 bodys39_0)
                                                          (values
                                                           (cons
                                                            argss38_0
                                                            argss_0)
                                                           (cons
                                                            bodys39_0
                                                            bodys_0)))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args)))))
                                                     (case-lambda
                                                      ((argss_1 bodys_1)
                                                       (values
                                                        argss_1
                                                        bodys_1))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args)))))
                                                  (case-lambda
                                                   ((argss_1 bodys_1)
                                                    (for-loop_0
                                                     argss_1
                                                     bodys_1
                                                     rest_0))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args)))))))
                                           (values argss_0 bodys_0)))))))
                                  (for-loop_0 null null d_0))))
                             (case-lambda
                              ((argss_0 bodys_0)
                               (let ((app_0 (reverse$1 argss_0)))
                                 (values app_0 (reverse$1 bodys_0))))
                              (args
                               (raise-binding-result-arity-error 2 args))))))
                        (case-lambda
                         ((argss_0 bodys_0)
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (loops_1 lst_0)
                                  (begin
                                    (if (pair? lst_0)
                                      (let ((body_0 (unsafe-car lst_0)))
                                        (let ((rest_0 (unsafe-cdr lst_0)))
                                          (let ((loops_2
                                                 (let ((loops_2
                                                        (find-seq-loops_0
                                                         find-loops_0
                                                         body_0
                                                         lifts_0
                                                         loop-if-tail_0
                                                         loops_1)))
                                                   (values loops_2))))
                                            (for-loop_0 loops_2 rest_0))))
                                      loops_1))))))
                             (for-loop_0 loops_0 bodys_0))))
                         (args (raise-binding-result-arity-error 2 args))))
                       (find-loops_0 v_0 lifts_0 hash2610 loops_0))))))))
           (find-seq-loops_0
            (|#%name|
             find-seq-loops
             (lambda (find-loops_0 vs_0 lifts_0 loop-if-tail_0 loops_0)
               (begin
                 (letrec*
                  ((loop_3
                    (|#%name|
                     loop
                     (lambda (vs_1 loops_1)
                       (begin
                         (if (let ((v_0 (wrap-cdr vs_1))) (null? (unwrap v_0)))
                           (find-loops_0
                            (wrap-car vs_1)
                            lifts_0
                            loop-if-tail_0
                            loops_1)
                           (let ((app_0 (wrap-cdr vs_1)))
                             (loop_3
                              app_0
                              (find-loops_0
                               (wrap-car vs_1)
                               lifts_0
                               hash2610
                               loops_1)))))))))
                  (loop_3 vs_0 loops_0))))))
           (frees-count_0
            (|#%name|
             frees-count
             (lambda (frees+binds_0)
               (begin (hash-count (car frees+binds_0))))))
           (immediate?_0
            (|#%name|
             immediate?
             (lambda (v_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap v_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'quote hd_0) #t #f)
                     #t
                     (if (let ((p_0 (unwrap v_0))) (if (pair? p_0) #t #f))
                       #f
                       (not (symbol? (unwrap v_0))))))))))
           (lambda?_0
            (|#%name|
             lambda?
             (lambda (v_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap v_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'lambda hd_0) #t #f)
                     #t
                     (if (if (eq? 'case-lambda hd_0) #t #f) #t #f)))))))
           (lift-if-empty_0
            (|#%name|
             lift-if-empty
             (lambda (v_0 lifts_0 empties_0 new-v_0)
               (begin
                 (if (hash-ref lifts_0 v_0 #f)
                   (let ((id_0 (deterministic-gensym "procz")))
                     (begin
                       (set-box!
                        empties_0
                        (cons (list id_0 new-v_0) (unbox empties_0)))
                       id_0))
                   new-v_0)))))
           (lift-in-expr?_0
            (|#%name|
             lift-in-expr?
             (lambda (v_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap v_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'lambda hd_0)
                         (let ((a_0 (cdr (unwrap v_0))))
                           (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
                         #f)
                     (let ((body_0
                            (let ((d_0 (cdr (unwrap v_0))))
                              (let ((d_1 (cdr (unwrap d_0)))) d_1))))
                       (lift?/seq_0 body_0))
                     (if (if (eq? 'case-lambda hd_0)
                           (let ((a_0 (cdr (unwrap v_0))))
                             (if (wrap-list? a_0)
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (result_0 lst_0)
                                       (begin
                                         (if (not (null? (unwrap lst_0)))
                                           (let ((v_1
                                                  (if (pair? (unwrap lst_0))
                                                    (wrap-car lst_0)
                                                    lst_0)))
                                             (let ((rest_0
                                                    (if (pair? (unwrap lst_0))
                                                      (wrap-cdr lst_0)
                                                      null)))
                                               (let ((v_2 v_1))
                                                 (let ((result_1
                                                        (let ((result_1
                                                               (let ((p_0
                                                                      (unwrap
                                                                       v_2)))
                                                                 (if (pair?
                                                                      p_0)
                                                                   #t
                                                                   #f))))
                                                          (values result_1))))
                                                   (if (if (not
                                                            (let ((x_0
                                                                   (list v_2)))
                                                              (not result_1)))
                                                         #t
                                                         #f)
                                                     (for-loop_0
                                                      result_1
                                                      rest_0)
                                                     result_1)))))
                                           result_0))))))
                                  (for-loop_0 #t a_0)))
                               #f))
                           #f)
                       (let ((bodys_0
                              (let ((d_0 (cdr (unwrap v_0))))
                                (let ((bodys_0
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (bodys_0 lst_0)
                                               (begin
                                                 (if (not
                                                      (null? (unwrap lst_0)))
                                                   (let ((v_1
                                                          (if (pair?
                                                               (unwrap lst_0))
                                                            (wrap-car lst_0)
                                                            lst_0)))
                                                     (let ((rest_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-cdr lst_0)
                                                              null)))
                                                       (let ((v_2 v_1))
                                                         (let ((bodys_1
                                                                (let ((bodys_1
                                                                       (let ((bodys21_0
                                                                              (let ((d_1
                                                                                     (cdr
                                                                                      (unwrap
                                                                                       v_2))))
                                                                                d_1)))
                                                                         (cons
                                                                          bodys21_0
                                                                          bodys_0))))
                                                                  (values
                                                                   bodys_1))))
                                                           (for-loop_0
                                                            bodys_1
                                                            rest_0)))))
                                                   bodys_0))))))
                                          (for-loop_0 null d_0)))))
                                  (reverse$1 bodys_0)))))
                         (begin
                           (letrec*
                            ((for-loop_0
                              (|#%name|
                               for-loop
                               (lambda (result_0 lst_0)
                                 (begin
                                   (if (pair? lst_0)
                                     (let ((body_0 (unsafe-car lst_0)))
                                       (let ((rest_0 (unsafe-cdr lst_0)))
                                         (let ((result_1
                                                (let ((result_1
                                                       (lift?/seq_0 body_0)))
                                                  (values result_1))))
                                           (if (if (not
                                                    (let ((x_0 (list body_0)))
                                                      result_1))
                                                 #t
                                                 #f)
                                             (for-loop_0 result_1 rest_0)
                                             result_1))))
                                     result_0))))))
                            (for-loop_0 #f bodys_0))))
                       (if (if (eq? 'let hd_0) #t #f)
                         (lift-in-let?_0 v_0)
                         (if (if (eq? 'letrec hd_0) #t #f)
                           (lift-in-let?_0 v_0)
                           (if (if (eq? 'letrec* hd_0) #t #f)
                             (lift-in-let?_0 v_0)
                             (if (if (eq? 'let-values hd_0) #t #f)
                               (error 'internal-error "unexpected let-values")
                               (if (if (eq? 'letrec-values hd_0) #t #f)
                                 (error
                                  'internal-error
                                  "unexpected letrec-values")
                                 (if (if (eq? 'begin hd_0) #t #f)
                                   (let ((vs_0
                                          (let ((d_0 (cdr (unwrap v_0))))
                                            d_0)))
                                     (begin
                                       (letrec*
                                        ((for-loop_0
                                          (|#%name|
                                           for-loop
                                           (lambda (result_0 lst_0)
                                             (begin
                                               (if (not (null? (unwrap lst_0)))
                                                 (let ((v_1
                                                        (if (pair?
                                                             (unwrap lst_0))
                                                          (wrap-car lst_0)
                                                          lst_0)))
                                                   (let ((rest_0
                                                          (if (pair?
                                                               (unwrap lst_0))
                                                            (wrap-cdr lst_0)
                                                            null)))
                                                     (let ((v_2 v_1))
                                                       (let ((result_1
                                                              (let ((result_1
                                                                     (lift-in-expr?_0
                                                                      v_2)))
                                                                (values
                                                                 result_1))))
                                                         (if (if (not
                                                                  (let ((x_0
                                                                         (list
                                                                          v_2)))
                                                                    result_1))
                                                               #t
                                                               #f)
                                                           (for-loop_0
                                                            result_1
                                                            rest_0)
                                                           result_1)))))
                                                 result_0))))))
                                        (for-loop_0 #f vs_0))))
                                   (if (if (eq? 'if hd_0)
                                         (let ((a_0 (cdr (unwrap v_0))))
                                           (let ((p_0 (unwrap a_0)))
                                             (if (pair? p_0)
                                               (let ((a_1 (cdr p_0)))
                                                 (let ((p_1 (unwrap a_1)))
                                                   (if (pair? p_1)
                                                     (let ((a_2 (cdr p_1)))
                                                       (let ((p_2
                                                              (unwrap a_2)))
                                                         (if (pair? p_2)
                                                           (let ((a_3
                                                                  (cdr p_2)))
                                                             (let ((app_0
                                                                    (unwrap
                                                                     '())))
                                                               (eq?
                                                                app_0
                                                                (unwrap a_3))))
                                                           #f)))
                                                     #f)))
                                               #f)))
                                         #f)
                                     (call-with-values
                                      (lambda ()
                                        (let ((d_0 (cdr (unwrap v_0))))
                                          (let ((p_0 (unwrap d_0)))
                                            (let ((tst_0
                                                   (let ((a_0 (car p_0)))
                                                     a_0)))
                                              (call-with-values
                                               (lambda ()
                                                 (let ((d_1 (cdr p_0)))
                                                   (let ((p_1 (unwrap d_1)))
                                                     (let ((thn_0
                                                            (let ((a_0
                                                                   (car p_1)))
                                                              a_0)))
                                                       (let ((els_0
                                                              (let ((d_2
                                                                     (cdr
                                                                      p_1)))
                                                                (let ((a_0
                                                                       (car
                                                                        (unwrap
                                                                         d_2))))
                                                                  a_0))))
                                                         (let ((thn_1 thn_0))
                                                           (values
                                                            thn_1
                                                            els_0)))))))
                                               (case-lambda
                                                ((thn_0 els_0)
                                                 (let ((tst_1 tst_0))
                                                   (values tst_1 thn_0 els_0)))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  2
                                                  args))))))))
                                      (case-lambda
                                       ((tst_0 thn_0 els_0)
                                        (let ((or-part_0
                                               (lift-in-expr?_0 tst_0)))
                                          (if or-part_0
                                            or-part_0
                                            (let ((or-part_1
                                                   (lift-in-expr?_0 thn_0)))
                                              (if or-part_1
                                                or-part_1
                                                (lift-in-expr?_0 els_0))))))
                                       (args
                                        (raise-binding-result-arity-error
                                         3
                                         args))))
                                     (if (if (eq?
                                              'with-continuation-mark*
                                              hd_0)
                                           (let ((a_0 (cdr (unwrap v_0))))
                                             (let ((p_0 (unwrap a_0)))
                                               (if (pair? p_0)
                                                 (let ((a_1 (cdr p_0)))
                                                   (let ((p_1 (unwrap a_1)))
                                                     (if (pair? p_1)
                                                       (let ((a_2 (cdr p_1)))
                                                         (let ((p_2
                                                                (unwrap a_2)))
                                                           (if (pair? p_2)
                                                             (let ((a_3
                                                                    (cdr p_2)))
                                                               (let ((p_3
                                                                      (unwrap
                                                                       a_3)))
                                                                 (if (pair?
                                                                      p_3)
                                                                   (let ((a_4
                                                                          (cdr
                                                                           p_3)))
                                                                     (let ((app_0
                                                                            (unwrap
                                                                             '())))
                                                                       (eq?
                                                                        app_0
                                                                        (unwrap
                                                                         a_4))))
                                                                   #f)))
                                                             #f)))
                                                       #f)))
                                                 #f)))
                                           #f)
                                       (call-with-values
                                        (lambda ()
                                          (let ((d_0 (cdr (unwrap v_0))))
                                            (let ((d_1 (cdr (unwrap d_0))))
                                              (let ((p_0 (unwrap d_1)))
                                                (let ((key_0
                                                       (let ((a_0 (car p_0)))
                                                         a_0)))
                                                  (call-with-values
                                                   (lambda ()
                                                     (let ((d_2 (cdr p_0)))
                                                       (let ((p_1
                                                              (unwrap d_2)))
                                                         (let ((val_0
                                                                (let ((a_0
                                                                       (car
                                                                        p_1)))
                                                                  a_0)))
                                                           (let ((body_0
                                                                  (let ((d_3
                                                                         (cdr
                                                                          p_1)))
                                                                    (let ((a_0
                                                                           (car
                                                                            (unwrap
                                                                             d_3))))
                                                                      a_0))))
                                                             (let ((val_1
                                                                    val_0))
                                                               (values
                                                                val_1
                                                                body_0)))))))
                                                   (case-lambda
                                                    ((val_0 body_0)
                                                     (let ((key_1 key_0))
                                                       (values
                                                        key_1
                                                        val_0
                                                        body_0)))
                                                    (args
                                                     (raise-binding-result-arity-error
                                                      2
                                                      args)))))))))
                                        (case-lambda
                                         ((key_0 val_0 body_0)
                                          (let ((or-part_0
                                                 (lift-in-expr?_0 key_0)))
                                            (if or-part_0
                                              or-part_0
                                              (let ((or-part_1
                                                     (lift-in-expr?_0 val_0)))
                                                (if or-part_1
                                                  or-part_1
                                                  (lift-in-expr?_0 body_0))))))
                                         (args
                                          (raise-binding-result-arity-error
                                           3
                                           args))))
                                       (if (if (eq? 'quote hd_0)
                                             (let ((a_0 (cdr (unwrap v_0))))
                                               (let ((p_0 (unwrap a_0)))
                                                 (if (pair? p_0)
                                                   (let ((a_1 (cdr p_0)))
                                                     (let ((app_0
                                                            (unwrap '())))
                                                       (eq?
                                                        app_0
                                                        (unwrap a_1))))
                                                   #f)))
                                             #f)
                                         #f
                                         (if (if (eq?
                                                  '|#%variable-reference|
                                                  hd_0)
                                               #t
                                               #f)
                                           (error
                                            'internal-error
                                            "unexpected variable reference")
                                           (if (if (eq? 'set! hd_0)
                                                 (let ((a_0
                                                        (cdr (unwrap v_0))))
                                                   (let ((p_0 (unwrap a_0)))
                                                     (if (pair? p_0)
                                                       (let ((a_1 (cdr p_0)))
                                                         (let ((p_1
                                                                (unwrap a_1)))
                                                           (if (pair? p_1)
                                                             (let ((a_2
                                                                    (cdr p_1)))
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_2))))
                                                             #f)))
                                                       #f)))
                                                 #f)
                                             (let ((rhs_0
                                                    (let ((d_0
                                                           (cdr (unwrap v_0))))
                                                      (let ((d_1
                                                             (cdr
                                                              (unwrap d_0))))
                                                        (let ((a_0
                                                               (car
                                                                (unwrap d_1))))
                                                          a_0)))))
                                               (lift-in-expr?_0 rhs_0))
                                             (if (wrap-list? v_0)
                                               (lift-in-seq?_0 v_0)
                                               #f)))))))))))))))))))
           (lift-in-expr_0
            (|#%name|
             lift-in-expr
             (lambda (find-loops_0 leave-loops-intact?_0 v_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap v_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'lambda hd_0)
                         (let ((a_0 (cdr (unwrap v_0))))
                           (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
                         #f)
                     (call-with-values
                      (lambda ()
                        (let ((d_0 (cdr (unwrap v_0))))
                          (let ((p_0 (unwrap d_0)))
                            (let ((args_0 (let ((a_0 (car p_0))) a_0)))
                              (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                                (let ((args_1 args_0))
                                  (values args_1 body_0)))))))
                      (case-lambda
                       ((args_0 body_0)
                        (let ((lifts_0 (make-hasheq)))
                          (let ((locals_0 (add-args_0 args_0 hash2610)))
                            (let ((frees+binds/ignored_0
                                   (compute-seq-lifts!_0
                                    body_0
                                    empty-frees+binds
                                    lifts_0
                                    locals_0)))
                              (let ((loops_0
                                     (if leave-loops-intact?_0
                                       (find-seq-loops_0
                                        find-loops_0
                                        body_0
                                        lifts_0
                                        hash2610
                                        hash2610)
                                       hash2610)))
                                (let ((lifts_1
                                       (if (zero? (hash-count lifts_0))
                                         lifts_0
                                         (close-and-convert-lifts_0
                                          lifts_0
                                          loops_0))))
                                  (if (zero? (hash-count lifts_1))
                                    v_0
                                    (let ((empties_0 (box null)))
                                      (let ((lifted-bindings_0
                                             (extract-lifted-bindings_0
                                              lifts_1
                                              empties_0)))
                                        (let ((new-body_0
                                               (reannotate
                                                v_0
                                                (list*
                                                 'lambda
                                                 args_0
                                                 (convert-lifted-calls-in-seq/box-mutated_0
                                                  body_0
                                                  args_0
                                                  lifts_1
                                                  hash2610
                                                  empties_0)))))
                                          (list
                                           'letrec
                                           (append
                                            (unbox empties_0)
                                            lifted-bindings_0)
                                           new-body_0)))))))))))
                       (args (raise-binding-result-arity-error 2 args))))
                     (if (if (eq? 'case-lambda hd_0)
                           (let ((a_0 (cdr (unwrap v_0))))
                             (if (wrap-list? a_0)
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (result_0 lst_0)
                                       (begin
                                         (if (not (null? (unwrap lst_0)))
                                           (let ((v_1
                                                  (if (pair? (unwrap lst_0))
                                                    (wrap-car lst_0)
                                                    lst_0)))
                                             (let ((rest_0
                                                    (if (pair? (unwrap lst_0))
                                                      (wrap-cdr lst_0)
                                                      null)))
                                               (let ((v_2 v_1))
                                                 (let ((result_1
                                                        (let ((result_1
                                                               (let ((p_0
                                                                      (unwrap
                                                                       v_2)))
                                                                 (if (pair?
                                                                      p_0)
                                                                   #t
                                                                   #f))))
                                                          (values result_1))))
                                                   (if (if (not
                                                            (let ((x_0
                                                                   (list v_2)))
                                                              (not result_1)))
                                                         #t
                                                         #f)
                                                     (for-loop_0
                                                      result_1
                                                      rest_0)
                                                     result_1)))))
                                           result_0))))))
                                  (for-loop_0 #t a_0)))
                               #f))
                           #f)
                       (call-with-values
                        (lambda ()
                          (let ((d_0 (cdr (unwrap v_0))))
                            (call-with-values
                             (lambda ()
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (argss_0 bodys_0 lst_0)
                                       (begin
                                         (if (not (null? (unwrap lst_0)))
                                           (let ((v_1
                                                  (if (pair? (unwrap lst_0))
                                                    (wrap-car lst_0)
                                                    lst_0)))
                                             (let ((rest_0
                                                    (if (pair? (unwrap lst_0))
                                                      (wrap-cdr lst_0)
                                                      null)))
                                               (let ((v_2 v_1))
                                                 (call-with-values
                                                  (lambda ()
                                                    (call-with-values
                                                     (lambda ()
                                                       (call-with-values
                                                        (lambda ()
                                                          (let ((p_0
                                                                 (unwrap v_2)))
                                                            (let ((argss_1
                                                                   (let ((a_0
                                                                          (car
                                                                           p_0)))
                                                                     a_0)))
                                                              (let ((bodys_1
                                                                     (let ((d_1
                                                                            (cdr
                                                                             p_0)))
                                                                       d_1)))
                                                                (let ((argss_2
                                                                       argss_1))
                                                                  (values
                                                                   argss_2
                                                                   bodys_1))))))
                                                        (case-lambda
                                                         ((argss25_0 bodys26_0)
                                                          (values
                                                           (cons
                                                            argss25_0
                                                            argss_0)
                                                           (cons
                                                            bodys26_0
                                                            bodys_0)))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args)))))
                                                     (case-lambda
                                                      ((argss_1 bodys_1)
                                                       (values
                                                        argss_1
                                                        bodys_1))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args)))))
                                                  (case-lambda
                                                   ((argss_1 bodys_1)
                                                    (for-loop_0
                                                     argss_1
                                                     bodys_1
                                                     rest_0))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args)))))))
                                           (values argss_0 bodys_0)))))))
                                  (for-loop_0 null null d_0))))
                             (case-lambda
                              ((argss_0 bodys_0)
                               (let ((app_0 (reverse$1 argss_0)))
                                 (values app_0 (reverse$1 bodys_0))))
                              (args
                               (raise-binding-result-arity-error 2 args))))))
                        (case-lambda
                         ((argss_0 bodys_0)
                          (let ((lams_0
                                 (reverse$1
                                  (begin
                                    (letrec*
                                     ((for-loop_0
                                       (|#%name|
                                        for-loop
                                        (lambda (fold-var_0 lst_0 lst_1)
                                          (begin
                                            (if (if (pair? lst_0)
                                                  (pair? lst_1)
                                                  #f)
                                              (let ((args_0
                                                     (unsafe-car lst_0)))
                                                (let ((rest_0
                                                       (unsafe-cdr lst_0)))
                                                  (let ((body_0
                                                         (unsafe-car lst_1)))
                                                    (let ((rest_1
                                                           (unsafe-cdr lst_1)))
                                                      (let ((fold-var_1
                                                             (let ((fold-var_1
                                                                    (cons
                                                                     (lift-in-expr_0
                                                                      find-loops_0
                                                                      leave-loops-intact?_0
                                                                      (list*
                                                                       'lambda
                                                                       args_0
                                                                       body_0))
                                                                     fold-var_0)))
                                                               (values
                                                                fold-var_1))))
                                                        (for-loop_0
                                                         fold-var_1
                                                         rest_0
                                                         rest_1))))))
                                              fold-var_0))))))
                                     (for-loop_0 null argss_0 bodys_0))))))
                            (reannotate v_0 (loop_0 lams_0 null null))))
                         (args (raise-binding-result-arity-error 2 args))))
                       (if (if (eq? 'let hd_0) #t #f)
                         (lift-in-let_0 find-loops_0 leave-loops-intact?_0 v_0)
                         (if (if (eq? 'letrec hd_0) #t #f)
                           (lift-in-let_0
                            find-loops_0
                            leave-loops-intact?_0
                            v_0)
                           (if (if (eq? 'letrec* hd_0) #t #f)
                             (lift-in-let_0
                              find-loops_0
                              leave-loops-intact?_0
                              v_0)
                             (if (if (eq? 'let-values hd_0) #t #f)
                               (error 'internal-error "unexpected let-values")
                               (if (if (eq? 'letrec-values hd_0) #t #f)
                                 (error
                                  'internal-error
                                  "unexpected letrec-values")
                                 (if (if (eq? 'begin hd_0) #t #f)
                                   (let ((vs_0
                                          (let ((d_0 (cdr (unwrap v_0))))
                                            d_0)))
                                     (reannotate
                                      v_0
                                      (list*
                                       'begin
                                       (reverse$1
                                        (begin
                                          (letrec*
                                           ((for-loop_0
                                             (|#%name|
                                              for-loop
                                              (lambda (fold-var_0 lst_0)
                                                (begin
                                                  (if (not
                                                       (null? (unwrap lst_0)))
                                                    (let ((v_1
                                                           (if (pair?
                                                                (unwrap lst_0))
                                                             (wrap-car lst_0)
                                                             lst_0)))
                                                      (let ((rest_0
                                                             (if (pair?
                                                                  (unwrap
                                                                   lst_0))
                                                               (wrap-cdr lst_0)
                                                               null)))
                                                        (let ((v_2 v_1))
                                                          (let ((fold-var_1
                                                                 (let ((fold-var_1
                                                                        (cons
                                                                         (lift-in-expr_0
                                                                          find-loops_0
                                                                          leave-loops-intact?_0
                                                                          v_2)
                                                                         fold-var_0)))
                                                                   (values
                                                                    fold-var_1))))
                                                            (for-loop_0
                                                             fold-var_1
                                                             rest_0)))))
                                                    fold-var_0))))))
                                           (for-loop_0 null vs_0)))))))
                                   (if (if (eq? 'if hd_0)
                                         (let ((a_0 (cdr (unwrap v_0))))
                                           (let ((p_0 (unwrap a_0)))
                                             (if (pair? p_0)
                                               (let ((a_1 (cdr p_0)))
                                                 (let ((p_1 (unwrap a_1)))
                                                   (if (pair? p_1)
                                                     (let ((a_2 (cdr p_1)))
                                                       (let ((p_2
                                                              (unwrap a_2)))
                                                         (if (pair? p_2)
                                                           (let ((a_3
                                                                  (cdr p_2)))
                                                             (let ((app_0
                                                                    (unwrap
                                                                     '())))
                                                               (eq?
                                                                app_0
                                                                (unwrap a_3))))
                                                           #f)))
                                                     #f)))
                                               #f)))
                                         #f)
                                     (call-with-values
                                      (lambda ()
                                        (let ((d_0 (cdr (unwrap v_0))))
                                          (let ((p_0 (unwrap d_0)))
                                            (let ((tst_0
                                                   (let ((a_0 (car p_0)))
                                                     a_0)))
                                              (call-with-values
                                               (lambda ()
                                                 (let ((d_1 (cdr p_0)))
                                                   (let ((p_1 (unwrap d_1)))
                                                     (let ((thn_0
                                                            (let ((a_0
                                                                   (car p_1)))
                                                              a_0)))
                                                       (let ((els_0
                                                              (let ((d_2
                                                                     (cdr
                                                                      p_1)))
                                                                (let ((a_0
                                                                       (car
                                                                        (unwrap
                                                                         d_2))))
                                                                  a_0))))
                                                         (let ((thn_1 thn_0))
                                                           (values
                                                            thn_1
                                                            els_0)))))))
                                               (case-lambda
                                                ((thn_0 els_0)
                                                 (let ((tst_1 tst_0))
                                                   (values tst_1 thn_0 els_0)))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  2
                                                  args))))))))
                                      (case-lambda
                                       ((tst_0 thn_0 els_0)
                                        (reannotate
                                         v_0
                                         (let ((app_0
                                                (lift-in-expr_0
                                                 find-loops_0
                                                 leave-loops-intact?_0
                                                 tst_0)))
                                           (let ((app_1
                                                  (lift-in-expr_0
                                                   find-loops_0
                                                   leave-loops-intact?_0
                                                   thn_0)))
                                             (list
                                              'if
                                              app_0
                                              app_1
                                              (lift-in-expr_0
                                               find-loops_0
                                               leave-loops-intact?_0
                                               els_0))))))
                                       (args
                                        (raise-binding-result-arity-error
                                         3
                                         args))))
                                     (if (if (eq?
                                              'with-continuation-mark*
                                              hd_0)
                                           (let ((a_0 (cdr (unwrap v_0))))
                                             (let ((p_0 (unwrap a_0)))
                                               (if (pair? p_0)
                                                 (let ((a_1 (cdr p_0)))
                                                   (let ((p_1 (unwrap a_1)))
                                                     (if (pair? p_1)
                                                       (let ((a_2 (cdr p_1)))
                                                         (let ((p_2
                                                                (unwrap a_2)))
                                                           (if (pair? p_2)
                                                             (let ((a_3
                                                                    (cdr p_2)))
                                                               (let ((p_3
                                                                      (unwrap
                                                                       a_3)))
                                                                 (if (pair?
                                                                      p_3)
                                                                   (let ((a_4
                                                                          (cdr
                                                                           p_3)))
                                                                     (let ((app_0
                                                                            (unwrap
                                                                             '())))
                                                                       (eq?
                                                                        app_0
                                                                        (unwrap
                                                                         a_4))))
                                                                   #f)))
                                                             #f)))
                                                       #f)))
                                                 #f)))
                                           #f)
                                       (call-with-values
                                        (lambda ()
                                          (let ((d_0 (cdr (unwrap v_0))))
                                            (let ((p_0 (unwrap d_0)))
                                              (let ((mode_0
                                                     (let ((a_0 (car p_0)))
                                                       a_0)))
                                                (call-with-values
                                                 (lambda ()
                                                   (let ((d_1 (cdr p_0)))
                                                     (let ((p_1 (unwrap d_1)))
                                                       (let ((key_0
                                                              (let ((a_0
                                                                     (car
                                                                      p_1)))
                                                                a_0)))
                                                         (call-with-values
                                                          (lambda ()
                                                            (let ((d_2
                                                                   (cdr p_1)))
                                                              (let ((p_2
                                                                     (unwrap
                                                                      d_2)))
                                                                (let ((val_0
                                                                       (let ((a_0
                                                                              (car
                                                                               p_2)))
                                                                         a_0)))
                                                                  (let ((body_0
                                                                         (let ((d_3
                                                                                (cdr
                                                                                 p_2)))
                                                                           (let ((a_0
                                                                                  (car
                                                                                   (unwrap
                                                                                    d_3))))
                                                                             a_0))))
                                                                    (let ((val_1
                                                                           val_0))
                                                                      (values
                                                                       val_1
                                                                       body_0)))))))
                                                          (case-lambda
                                                           ((val_0 body_0)
                                                            (let ((key_1
                                                                   key_0))
                                                              (values
                                                               key_1
                                                               val_0
                                                               body_0)))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             2
                                                             args))))))))
                                                 (case-lambda
                                                  ((key_0 val_0 body_0)
                                                   (let ((mode_1 mode_0))
                                                     (values
                                                      mode_1
                                                      key_0
                                                      val_0
                                                      body_0)))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    3
                                                    args))))))))
                                        (case-lambda
                                         ((mode_0 key_0 val_0 body_0)
                                          (reannotate
                                           v_0
                                           (let ((app_0
                                                  (lift-in-expr_0
                                                   find-loops_0
                                                   leave-loops-intact?_0
                                                   key_0)))
                                             (let ((app_1
                                                    (lift-in-expr_0
                                                     find-loops_0
                                                     leave-loops-intact?_0
                                                     val_0)))
                                               (list
                                                'with-continuation-mark*
                                                mode_0
                                                app_0
                                                app_1
                                                (lift-in-expr_0
                                                 find-loops_0
                                                 leave-loops-intact?_0
                                                 body_0))))))
                                         (args
                                          (raise-binding-result-arity-error
                                           4
                                           args))))
                                       (if (if (eq? 'quote hd_0)
                                             (let ((a_0 (cdr (unwrap v_0))))
                                               (let ((p_0 (unwrap a_0)))
                                                 (if (pair? p_0)
                                                   (let ((a_1 (cdr p_0)))
                                                     (let ((app_0
                                                            (unwrap '())))
                                                       (eq?
                                                        app_0
                                                        (unwrap a_1))))
                                                   #f)))
                                             #f)
                                         v_0
                                         (if (if (eq?
                                                  '|#%variable-reference|
                                                  hd_0)
                                               #t
                                               #f)
                                           (error
                                            'internal-error
                                            "unexpected variable reference")
                                           (if (if (eq? 'set! hd_0)
                                                 (let ((a_0
                                                        (cdr (unwrap v_0))))
                                                   (let ((p_0 (unwrap a_0)))
                                                     (if (pair? p_0)
                                                       (let ((a_1 (cdr p_0)))
                                                         (let ((p_1
                                                                (unwrap a_1)))
                                                           (if (pair? p_1)
                                                             (let ((a_2
                                                                    (cdr p_1)))
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_2))))
                                                             #f)))
                                                       #f)))
                                                 #f)
                                             (call-with-values
                                              (lambda ()
                                                (let ((d_0 (cdr (unwrap v_0))))
                                                  (let ((p_0 (unwrap d_0)))
                                                    (let ((id_0
                                                           (let ((a_0
                                                                  (car p_0)))
                                                             a_0)))
                                                      (let ((rhs_0
                                                             (let ((d_1
                                                                    (cdr p_0)))
                                                               (let ((a_0
                                                                      (car
                                                                       (unwrap
                                                                        d_1))))
                                                                 a_0))))
                                                        (let ((id_1 id_0))
                                                          (values
                                                           id_1
                                                           rhs_0)))))))
                                              (case-lambda
                                               ((id_0 rhs_0)
                                                (reannotate
                                                 v_0
                                                 (list
                                                  'set!
                                                  id_0
                                                  (lift-in-expr_0
                                                   find-loops_0
                                                   leave-loops-intact?_0
                                                   rhs_0))))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args))))
                                             (if (wrap-list? v_0)
                                               (lift-in-seq_0
                                                find-loops_0
                                                leave-loops-intact?_0
                                                v_0)
                                               v_0)))))))))))))))))))
           (lift-in-let?_0
            (|#%name|
             lift-in-let?
             (lambda (v_0)
               (begin
                 (if (let ((p_0 (unwrap v_0)))
                       (if (pair? p_0)
                         (let ((a_0 (cdr p_0)))
                           (let ((p_1 (unwrap a_0)))
                             (if (pair? p_1)
                               (if (let ((a_1 (car p_1)))
                                     (if (wrap-list? a_1)
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (result_0 lst_0)
                                               (begin
                                                 (if (not
                                                      (null? (unwrap lst_0)))
                                                   (let ((v_1
                                                          (if (pair?
                                                               (unwrap lst_0))
                                                            (wrap-car lst_0)
                                                            lst_0)))
                                                     (let ((rest_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-cdr lst_0)
                                                              null)))
                                                       (let ((v_2 v_1))
                                                         (let ((result_1
                                                                (let ((result_1
                                                                       (let ((p_2
                                                                              (unwrap
                                                                               v_2)))
                                                                         (if (pair?
                                                                              p_2)
                                                                           (let ((a_2
                                                                                  (cdr
                                                                                   p_2)))
                                                                             (let ((p_3
                                                                                    (unwrap
                                                                                     a_2)))
                                                                               (if (pair?
                                                                                    p_3)
                                                                                 (let ((a_3
                                                                                        (cdr
                                                                                         p_3)))
                                                                                   (let ((app_0
                                                                                          (unwrap
                                                                                           '())))
                                                                                     (eq?
                                                                                      app_0
                                                                                      (unwrap
                                                                                       a_3))))
                                                                                 #f)))
                                                                           #f))))
                                                                  (values
                                                                   result_1))))
                                                           (if (if (not
                                                                    (let ((x_0
                                                                           (list
                                                                            v_2)))
                                                                      (not
                                                                       result_1)))
                                                                 #t
                                                                 #f)
                                                             (for-loop_0
                                                              result_1
                                                              rest_0)
                                                             result_1)))))
                                                   result_0))))))
                                          (for-loop_0 #t a_1)))
                                       #f))
                                 #t
                                 #f)
                               #f)))
                         #f))
                   (call-with-values
                    (lambda ()
                      (let ((d_0 (cdr (unwrap v_0))))
                        (let ((p_0 (unwrap d_0)))
                          (let ((rhss_0
                                 (let ((a_0 (car p_0)))
                                   (let ((rhss_0
                                          (begin
                                            (letrec*
                                             ((for-loop_0
                                               (|#%name|
                                                for-loop
                                                (lambda (rhss_0 lst_0)
                                                  (begin
                                                    (if (not
                                                         (null?
                                                          (unwrap lst_0)))
                                                      (let ((v_1
                                                             (if (pair?
                                                                  (unwrap
                                                                   lst_0))
                                                               (wrap-car lst_0)
                                                               lst_0)))
                                                        (let ((rest_0
                                                               (if (pair?
                                                                    (unwrap
                                                                     lst_0))
                                                                 (wrap-cdr
                                                                  lst_0)
                                                                 null)))
                                                          (let ((v_2 v_1))
                                                            (let ((rhss_1
                                                                   (let ((rhss_1
                                                                          (let ((rhss22_0
                                                                                 (let ((d_1
                                                                                        (cdr
                                                                                         (unwrap
                                                                                          v_2))))
                                                                                   (let ((a_1
                                                                                          (car
                                                                                           (unwrap
                                                                                            d_1))))
                                                                                     a_1))))
                                                                            (cons
                                                                             rhss22_0
                                                                             rhss_0))))
                                                                     (values
                                                                      rhss_1))))
                                                              (for-loop_0
                                                               rhss_1
                                                               rest_0)))))
                                                      rhss_0))))))
                                             (for-loop_0 null a_0)))))
                                     (reverse$1 rhss_0)))))
                            (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                              (let ((rhss_1 rhss_0))
                                (values rhss_1 body_0)))))))
                    (case-lambda
                     ((rhss_0 body_0)
                      (let ((or-part_0
                             (begin
                               (letrec*
                                ((for-loop_0
                                  (|#%name|
                                   for-loop
                                   (lambda (result_0 lst_0)
                                     (begin
                                       (if (pair? lst_0)
                                         (let ((rhs_0 (unsafe-car lst_0)))
                                           (let ((rest_0 (unsafe-cdr lst_0)))
                                             (let ((result_1
                                                    (let ((result_1
                                                           (lift-in-expr?_0
                                                            rhs_0)))
                                                      (values result_1))))
                                               (if (if (not
                                                        (let ((x_0
                                                               (list rhs_0)))
                                                          result_1))
                                                     #t
                                                     #f)
                                                 (for-loop_0 result_1 rest_0)
                                                 result_1))))
                                         result_0))))))
                                (for-loop_0 #f rhss_0)))))
                        (if or-part_0 or-part_0 (lift-in-seq?_0 body_0))))
                     (args (raise-binding-result-arity-error 2 args))))
                   (error 'match "failed ~e" v_0))))))
           (lift-in-let_0
            (|#%name|
             lift-in-let
             (lambda (find-loops_0 leave-loops-intact?_0 v_0)
               (begin
                 (if (let ((p_0 (unwrap v_0)))
                       (if (pair? p_0)
                         (let ((a_0 (cdr p_0)))
                           (let ((p_1 (unwrap a_0)))
                             (if (pair? p_1)
                               (if (let ((a_1 (car p_1)))
                                     (if (wrap-list? a_1)
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (result_0 lst_0)
                                               (begin
                                                 (if (not
                                                      (null? (unwrap lst_0)))
                                                   (let ((v_1
                                                          (if (pair?
                                                               (unwrap lst_0))
                                                            (wrap-car lst_0)
                                                            lst_0)))
                                                     (let ((rest_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-cdr lst_0)
                                                              null)))
                                                       (let ((v_2 v_1))
                                                         (let ((result_1
                                                                (let ((result_1
                                                                       (let ((p_2
                                                                              (unwrap
                                                                               v_2)))
                                                                         (if (pair?
                                                                              p_2)
                                                                           (let ((a_2
                                                                                  (cdr
                                                                                   p_2)))
                                                                             (let ((p_3
                                                                                    (unwrap
                                                                                     a_2)))
                                                                               (if (pair?
                                                                                    p_3)
                                                                                 (let ((a_3
                                                                                        (cdr
                                                                                         p_3)))
                                                                                   (let ((app_0
                                                                                          (unwrap
                                                                                           '())))
                                                                                     (eq?
                                                                                      app_0
                                                                                      (unwrap
                                                                                       a_3))))
                                                                                 #f)))
                                                                           #f))))
                                                                  (values
                                                                   result_1))))
                                                           (if (if (not
                                                                    (let ((x_0
                                                                           (list
                                                                            v_2)))
                                                                      (not
                                                                       result_1)))
                                                                 #t
                                                                 #f)
                                                             (for-loop_0
                                                              result_1
                                                              rest_0)
                                                             result_1)))))
                                                   result_0))))))
                                          (for-loop_0 #t a_1)))
                                       #f))
                                 #t
                                 #f)
                               #f)))
                         #f))
                   (call-with-values
                    (lambda ()
                      (let ((p_0 (unwrap v_0)))
                        (let ((let-id_0 (let ((a_0 (car p_0))) a_0)))
                          (call-with-values
                           (lambda ()
                             (let ((d_0 (cdr p_0)))
                               (let ((p_1 (unwrap d_0)))
                                 (call-with-values
                                  (lambda ()
                                    (let ((a_0 (car p_1)))
                                      (call-with-values
                                       (lambda ()
                                         (begin
                                           (letrec*
                                            ((for-loop_0
                                              (|#%name|
                                               for-loop
                                               (lambda (ids_0 rhss_0 lst_0)
                                                 (begin
                                                   (if (not
                                                        (null? (unwrap lst_0)))
                                                     (let ((v_1
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-car lst_0)
                                                              lst_0)))
                                                       (let ((rest_0
                                                              (if (pair?
                                                                   (unwrap
                                                                    lst_0))
                                                                (wrap-cdr
                                                                 lst_0)
                                                                null)))
                                                         (let ((v_2 v_1))
                                                           (call-with-values
                                                            (lambda ()
                                                              (call-with-values
                                                               (lambda ()
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (let ((p_2
                                                                           (unwrap
                                                                            v_2)))
                                                                      (let ((ids_1
                                                                             (let ((a_1
                                                                                    (car
                                                                                     p_2)))
                                                                               a_1)))
                                                                        (let ((rhss_1
                                                                               (let ((d_1
                                                                                      (cdr
                                                                                       p_2)))
                                                                                 (let ((a_1
                                                                                        (car
                                                                                         (unwrap
                                                                                          d_1))))
                                                                                   a_1))))
                                                                          (let ((ids_2
                                                                                 ids_1))
                                                                            (values
                                                                             ids_2
                                                                             rhss_1))))))
                                                                  (case-lambda
                                                                   ((ids27_0
                                                                     rhss28_0)
                                                                    (values
                                                                     (cons
                                                                      ids27_0
                                                                      ids_0)
                                                                     (cons
                                                                      rhss28_0
                                                                      rhss_0)))
                                                                   (args
                                                                    (raise-binding-result-arity-error
                                                                     2
                                                                     args)))))
                                                               (case-lambda
                                                                ((ids_1 rhss_1)
                                                                 (values
                                                                  ids_1
                                                                  rhss_1))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))
                                                            (case-lambda
                                                             ((ids_1 rhss_1)
                                                              (for-loop_0
                                                               ids_1
                                                               rhss_1
                                                               rest_0))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               2
                                                               args)))))))
                                                     (values
                                                      ids_0
                                                      rhss_0)))))))
                                            (for-loop_0 null null a_0))))
                                       (case-lambda
                                        ((ids_0 rhss_0)
                                         (let ((app_0 (reverse$1 ids_0)))
                                           (values app_0 (reverse$1 rhss_0))))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))))
                                  (case-lambda
                                   ((ids_0 rhss_0)
                                    (let ((body_0 (let ((d_1 (cdr p_1))) d_1)))
                                      (let ((ids_1 ids_0) (rhss_1 rhss_0))
                                        (values ids_1 rhss_1 body_0))))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args)))))))
                           (case-lambda
                            ((ids_0 rhss_0 body_0)
                             (let ((let-id_1 let-id_0))
                               (values let-id_1 ids_0 rhss_0 body_0)))
                            (args
                             (raise-binding-result-arity-error 3 args)))))))
                    (case-lambda
                     ((let-id_0 ids_0 rhss_0 body_0)
                      (reannotate
                       v_0
                       (let ((app_0
                              (reverse$1
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (fold-var_0 lst_0 lst_1)
                                       (begin
                                         (if (if (pair? lst_0)
                                               (pair? lst_1)
                                               #f)
                                           (let ((id_0 (unsafe-car lst_0)))
                                             (let ((rest_0 (unsafe-cdr lst_0)))
                                               (let ((rhs_0
                                                      (unsafe-car lst_1)))
                                                 (let ((rest_1
                                                        (unsafe-cdr lst_1)))
                                                   (let ((fold-var_1
                                                          (let ((fold-var_1
                                                                 (cons
                                                                  (list
                                                                   id_0
                                                                   (lift-in-expr_0
                                                                    find-loops_0
                                                                    leave-loops-intact?_0
                                                                    rhs_0))
                                                                  fold-var_0)))
                                                            (values
                                                             fold-var_1))))
                                                     (for-loop_0
                                                      fold-var_1
                                                      rest_0
                                                      rest_1))))))
                                           fold-var_0))))))
                                  (for-loop_0 null ids_0 rhss_0))))))
                         (list*
                          let-id_0
                          app_0
                          (lift-in-seq_0
                           find-loops_0
                           leave-loops-intact?_0
                           body_0)))))
                     (args (raise-binding-result-arity-error 4 args))))
                   (error 'match "failed ~e" v_0))))))
           (lift-in-seq?_0
            (|#%name|
             lift-in-seq?
             (lambda (vs_0)
               (begin
                 (begin
                   (letrec*
                    ((for-loop_0
                      (|#%name|
                       for-loop
                       (lambda (result_0 lst_0)
                         (begin
                           (if (not (null? (unwrap lst_0)))
                             (let ((v_0
                                    (if (pair? (unwrap lst_0))
                                      (wrap-car lst_0)
                                      lst_0)))
                               (let ((rest_0
                                      (if (pair? (unwrap lst_0))
                                        (wrap-cdr lst_0)
                                        null)))
                                 (let ((v_1 v_0))
                                   (let ((result_1
                                          (let ((result_1
                                                 (lift-in-expr?_0 v_1)))
                                            (values result_1))))
                                     (if (if (not
                                              (let ((x_0 (list v_1)))
                                                result_1))
                                           #t
                                           #f)
                                       (for-loop_0 result_1 rest_0)
                                       result_1)))))
                             result_0))))))
                    (for-loop_0 #f vs_0)))))))
           (lift-in-seq_0
            (|#%name|
             lift-in-seq
             (lambda (find-loops_0 leave-loops-intact?_0 vs_0)
               (begin
                 (reannotate
                  vs_0
                  (reverse$1
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (fold-var_0 lst_0)
                           (begin
                             (if (not (null? (unwrap lst_0)))
                               (let ((v_0
                                      (if (pair? (unwrap lst_0))
                                        (wrap-car lst_0)
                                        lst_0)))
                                 (let ((rest_0
                                        (if (pair? (unwrap lst_0))
                                          (wrap-cdr lst_0)
                                          null)))
                                   (let ((v_1 v_0))
                                     (let ((fold-var_1
                                            (let ((fold-var_1
                                                   (cons
                                                    (lift-in-expr_0
                                                     find-loops_0
                                                     leave-loops-intact?_0
                                                     v_1)
                                                    fold-var_0)))
                                              (values fold-var_1))))
                                       (for-loop_0 fold-var_1 rest_0)))))
                               fold-var_0))))))
                      (for-loop_0 null vs_0)))))))))
           (lift-in?_0
            (|#%name|
             lift-in?
             (lambda (v_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap v_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'define hd_0)
                         (let ((a_0 (cdr (unwrap v_0))))
                           (let ((p_0 (unwrap a_0)))
                             (if (pair? p_0)
                               (let ((a_1 (cdr p_0)))
                                 (let ((p_1 (unwrap a_1)))
                                   (if (pair? p_1)
                                     (let ((a_2 (cdr p_1)))
                                       (let ((app_0 (unwrap '())))
                                         (eq? app_0 (unwrap a_2))))
                                     #f)))
                               #f)))
                         #f)
                     (let ((rhs_0
                            (let ((d_0 (cdr (unwrap v_0))))
                              (let ((d_1 (cdr (unwrap d_0))))
                                (let ((a_0 (car (unwrap d_1)))) a_0)))))
                       (lift-in-expr?_0 rhs_0))
                     (if (if (eq? 'define-values hd_0)
                           (let ((a_0 (cdr (unwrap v_0))))
                             (let ((p_0 (unwrap a_0)))
                               (if (pair? p_0)
                                 (let ((a_1 (cdr p_0)))
                                   (let ((p_1 (unwrap a_1)))
                                     (if (pair? p_1)
                                       (let ((a_2 (cdr p_1)))
                                         (let ((app_0 (unwrap '())))
                                           (eq? app_0 (unwrap a_2))))
                                       #f)))
                                 #f)))
                           #f)
                       (let ((rhs_0
                              (let ((d_0 (cdr (unwrap v_0))))
                                (let ((d_1 (cdr (unwrap d_0))))
                                  (let ((a_0 (car (unwrap d_1)))) a_0)))))
                         (lift-in-expr?_0 rhs_0))
                       (if (if (eq? 'begin hd_0) #t #f)
                         (let ((vs_0 (let ((d_0 (cdr (unwrap v_0)))) d_0)))
                           (begin
                             (letrec*
                              ((for-loop_0
                                (|#%name|
                                 for-loop
                                 (lambda (result_0 lst_0)
                                   (begin
                                     (if (not (null? (unwrap lst_0)))
                                       (let ((v_1
                                              (if (pair? (unwrap lst_0))
                                                (wrap-car lst_0)
                                                lst_0)))
                                         (let ((rest_0
                                                (if (pair? (unwrap lst_0))
                                                  (wrap-cdr lst_0)
                                                  null)))
                                           (let ((v_2 v_1))
                                             (let ((result_1
                                                    (let ((result_1
                                                           (lift-in?_0 v_2)))
                                                      (values result_1))))
                                               (if (if (not
                                                        (let ((x_0 (list v_2)))
                                                          result_1))
                                                     #t
                                                     #f)
                                                 (for-loop_0 result_1 rest_0)
                                                 result_1)))))
                                       result_0))))))
                              (for-loop_0 #f vs_0))))
                         (lift-in-expr?_0 v_0)))))))))
           (lift-in_0
            (|#%name|
             lift-in
             (lambda (find-loops_0 leave-loops-intact?_0 v_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap v_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'define hd_0)
                         (let ((a_0 (cdr (unwrap v_0))))
                           (let ((p_0 (unwrap a_0)))
                             (if (pair? p_0)
                               (let ((a_1 (cdr p_0)))
                                 (let ((p_1 (unwrap a_1)))
                                   (if (pair? p_1)
                                     (let ((a_2 (cdr p_1)))
                                       (let ((app_0 (unwrap '())))
                                         (eq? app_0 (unwrap a_2))))
                                     #f)))
                               #f)))
                         #f)
                     (call-with-values
                      (lambda ()
                        (let ((d_0 (cdr (unwrap v_0))))
                          (let ((p_0 (unwrap d_0)))
                            (let ((id_0 (let ((a_0 (car p_0))) a_0)))
                              (let ((rhs_0
                                     (let ((d_1 (cdr p_0)))
                                       (let ((a_0 (car (unwrap d_1)))) a_0))))
                                (let ((id_1 id_0)) (values id_1 rhs_0)))))))
                      (case-lambda
                       ((id_0 rhs_0)
                        (reannotate
                         v_0
                         (list
                          'define
                          id_0
                          (lift-in-expr_0
                           find-loops_0
                           leave-loops-intact?_0
                           rhs_0))))
                       (args (raise-binding-result-arity-error 2 args))))
                     (if (if (eq? 'define-values hd_0)
                           (let ((a_0 (cdr (unwrap v_0))))
                             (let ((p_0 (unwrap a_0)))
                               (if (pair? p_0)
                                 (let ((a_1 (cdr p_0)))
                                   (let ((p_1 (unwrap a_1)))
                                     (if (pair? p_1)
                                       (let ((a_2 (cdr p_1)))
                                         (let ((app_0 (unwrap '())))
                                           (eq? app_0 (unwrap a_2))))
                                       #f)))
                                 #f)))
                           #f)
                       (call-with-values
                        (lambda ()
                          (let ((d_0 (cdr (unwrap v_0))))
                            (let ((p_0 (unwrap d_0)))
                              (let ((ids_0 (let ((a_0 (car p_0))) a_0)))
                                (let ((rhs_0
                                       (let ((d_1 (cdr p_0)))
                                         (let ((a_0 (car (unwrap d_1))))
                                           a_0))))
                                  (let ((ids_1 ids_0))
                                    (values ids_1 rhs_0)))))))
                        (case-lambda
                         ((ids_0 rhs_0)
                          (reannotate
                           v_0
                           (list
                            'define-values
                            ids_0
                            (lift-in-expr_0
                             find-loops_0
                             leave-loops-intact?_0
                             rhs_0))))
                         (args (raise-binding-result-arity-error 2 args))))
                       (if (if (eq? 'begin hd_0)
                             (let ((a_0 (cdr (unwrap v_0)))) (wrap-list? a_0))
                             #f)
                         (let ((vs_0
                                (let ((d_0 (cdr (unwrap v_0))))
                                  (unwrap-list d_0))))
                           (reannotate
                            v_0
                            (list*
                             'begin
                             (reverse$1
                              (begin
                                (letrec*
                                 ((for-loop_0
                                   (|#%name|
                                    for-loop
                                    (lambda (fold-var_0 lst_0)
                                      (begin
                                        (if (not (null? (unwrap lst_0)))
                                          (let ((v_1
                                                 (if (pair? (unwrap lst_0))
                                                   (wrap-car lst_0)
                                                   lst_0)))
                                            (let ((rest_0
                                                   (if (pair? (unwrap lst_0))
                                                     (wrap-cdr lst_0)
                                                     null)))
                                              (let ((v_2 v_1))
                                                (let ((fold-var_1
                                                       (let ((fold-var_1
                                                              (cons
                                                               (lift-in_0
                                                                find-loops_0
                                                                leave-loops-intact?_0
                                                                v_2)
                                                               fold-var_0)))
                                                         (values fold-var_1))))
                                                  (for-loop_0
                                                   fold-var_1
                                                   rest_0)))))
                                          fold-var_0))))))
                                 (for-loop_0 null vs_0)))))))
                         (lift-in-expr_0
                          find-loops_0
                          leave-loops-intact?_0
                          v_0)))))))))
           (lift?/let_0
            (|#%name|
             lift?/let
             (lambda (v_0)
               (begin
                 (if (let ((p_0 (unwrap v_0)))
                       (if (pair? p_0)
                         (let ((a_0 (cdr p_0)))
                           (let ((p_1 (unwrap a_0)))
                             (if (pair? p_1)
                               (if (let ((a_1 (car p_1)))
                                     (if (wrap-list? a_1)
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (result_0 lst_0)
                                               (begin
                                                 (if (not
                                                      (null? (unwrap lst_0)))
                                                   (let ((v_1
                                                          (if (pair?
                                                               (unwrap lst_0))
                                                            (wrap-car lst_0)
                                                            lst_0)))
                                                     (let ((rest_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-cdr lst_0)
                                                              null)))
                                                       (let ((v_2 v_1))
                                                         (let ((result_1
                                                                (let ((result_1
                                                                       (let ((p_2
                                                                              (unwrap
                                                                               v_2)))
                                                                         (if (pair?
                                                                              p_2)
                                                                           (let ((a_2
                                                                                  (cdr
                                                                                   p_2)))
                                                                             (let ((p_3
                                                                                    (unwrap
                                                                                     a_2)))
                                                                               (if (pair?
                                                                                    p_3)
                                                                                 (let ((a_3
                                                                                        (cdr
                                                                                         p_3)))
                                                                                   (let ((app_0
                                                                                          (unwrap
                                                                                           '())))
                                                                                     (eq?
                                                                                      app_0
                                                                                      (unwrap
                                                                                       a_3))))
                                                                                 #f)))
                                                                           #f))))
                                                                  (values
                                                                   result_1))))
                                                           (if (if (not
                                                                    (let ((x_0
                                                                           (list
                                                                            v_2)))
                                                                      (not
                                                                       result_1)))
                                                                 #t
                                                                 #f)
                                                             (for-loop_0
                                                              result_1
                                                              rest_0)
                                                             result_1)))))
                                                   result_0))))))
                                          (for-loop_0 #t a_1)))
                                       #f))
                                 #t
                                 #f)
                               #f)))
                         #f))
                   (call-with-values
                    (lambda ()
                      (let ((d_0 (cdr (unwrap v_0))))
                        (let ((p_0 (unwrap d_0)))
                          (let ((rhss_0
                                 (let ((a_0 (car p_0)))
                                   (let ((rhss_0
                                          (begin
                                            (letrec*
                                             ((for-loop_0
                                               (|#%name|
                                                for-loop
                                                (lambda (rhss_0 lst_0)
                                                  (begin
                                                    (if (not
                                                         (null?
                                                          (unwrap lst_0)))
                                                      (let ((v_1
                                                             (if (pair?
                                                                  (unwrap
                                                                   lst_0))
                                                               (wrap-car lst_0)
                                                               lst_0)))
                                                        (let ((rest_0
                                                               (if (pair?
                                                                    (unwrap
                                                                     lst_0))
                                                                 (wrap-cdr
                                                                  lst_0)
                                                                 null)))
                                                          (let ((v_2 v_1))
                                                            (let ((rhss_1
                                                                   (let ((rhss_1
                                                                          (let ((rhss24_0
                                                                                 (let ((d_1
                                                                                        (cdr
                                                                                         (unwrap
                                                                                          v_2))))
                                                                                   (let ((a_1
                                                                                          (car
                                                                                           (unwrap
                                                                                            d_1))))
                                                                                     a_1))))
                                                                            (cons
                                                                             rhss24_0
                                                                             rhss_0))))
                                                                     (values
                                                                      rhss_1))))
                                                              (for-loop_0
                                                               rhss_1
                                                               rest_0)))))
                                                      rhss_0))))))
                                             (for-loop_0 null a_0)))))
                                     (reverse$1 rhss_0)))))
                            (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                              (let ((rhss_1 rhss_0))
                                (values rhss_1 body_0)))))))
                    (case-lambda
                     ((rhss_0 body_0)
                      (let ((or-part_0
                             (begin
                               (letrec*
                                ((for-loop_0
                                  (|#%name|
                                   for-loop
                                   (lambda (result_0 lst_0)
                                     (begin
                                       (if (pair? lst_0)
                                         (let ((rhs_0 (unsafe-car lst_0)))
                                           (let ((rest_0 (unsafe-cdr lst_0)))
                                             (let ((result_1
                                                    (let ((result_1
                                                           (let ((or-part_0
                                                                  (lambda?_0
                                                                   rhs_0)))
                                                             (if or-part_0
                                                               or-part_0
                                                               (lift?_0
                                                                rhs_0)))))
                                                      (values result_1))))
                                               (if (if (not
                                                        (let ((x_0
                                                               (list rhs_0)))
                                                          result_1))
                                                     #t
                                                     #f)
                                                 (for-loop_0 result_1 rest_0)
                                                 result_1))))
                                         result_0))))))
                                (for-loop_0 #f rhss_0)))))
                        (if or-part_0 or-part_0 (lift?/seq_0 body_0))))
                     (args (raise-binding-result-arity-error 2 args))))
                   (error 'match "failed ~e" v_0))))))
           (lift?/seq_0
            (|#%name|
             lift?/seq
             (lambda (vs_0)
               (begin
                 (begin
                   (letrec*
                    ((for-loop_0
                      (|#%name|
                       for-loop
                       (lambda (result_0 lst_0)
                         (begin
                           (if (not (null? (unwrap lst_0)))
                             (let ((v_0
                                    (if (pair? (unwrap lst_0))
                                      (wrap-car lst_0)
                                      lst_0)))
                               (let ((rest_0
                                      (if (pair? (unwrap lst_0))
                                        (wrap-cdr lst_0)
                                        null)))
                                 (let ((v_1 v_0))
                                   (let ((result_1
                                          (let ((result_1 (lift?_0 v_1)))
                                            (values result_1))))
                                     (if (if (not
                                              (let ((x_0 (list v_1)))
                                                result_1))
                                           #t
                                           #f)
                                       (for-loop_0 result_1 rest_0)
                                       result_1)))))
                             result_0))))))
                    (for-loop_0 #f vs_0)))))))
           (lift?_0
            (|#%name|
             lift?
             (lambda (v_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap v_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'let hd_0) #t #f)
                     (lift?/let_0 v_0)
                     (if (if (eq? 'letrec hd_0) #t #f)
                       (lift?/let_0 v_0)
                       (if (if (eq? 'letrec* hd_0) #t #f)
                         (lift?/let_0 v_0)
                         (if (if (eq? 'let-values hd_0) #t #f)
                           (lift?/let_0 v_0)
                           (if (if (eq? 'letrec-values hd_0) #t #f)
                             (lift?/let_0 v_0)
                             (if (if (eq? 'lambda hd_0)
                                   (let ((a_0 (cdr (unwrap v_0))))
                                     (let ((p_0 (unwrap a_0)))
                                       (if (pair? p_0) #t #f)))
                                   #f)
                               (let ((body_0
                                      (let ((d_0 (cdr (unwrap v_0))))
                                        (let ((d_1 (cdr (unwrap d_0)))) d_1))))
                                 #t)
                               (if (if (eq? 'case-lambda hd_0)
                                     (let ((a_0 (cdr (unwrap v_0))))
                                       (if (wrap-list? a_0)
                                         (begin
                                           (letrec*
                                            ((for-loop_0
                                              (|#%name|
                                               for-loop
                                               (lambda (result_0 lst_0)
                                                 (begin
                                                   (if (not
                                                        (null? (unwrap lst_0)))
                                                     (let ((v_1
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-car lst_0)
                                                              lst_0)))
                                                       (let ((rest_0
                                                              (if (pair?
                                                                   (unwrap
                                                                    lst_0))
                                                                (wrap-cdr
                                                                 lst_0)
                                                                null)))
                                                         (let ((v_2 v_1))
                                                           (let ((result_1
                                                                  (let ((result_1
                                                                         (let ((p_0
                                                                                (unwrap
                                                                                 v_2)))
                                                                           (if (pair?
                                                                                p_0)
                                                                             #t
                                                                             #f))))
                                                                    (values
                                                                     result_1))))
                                                             (if (if (not
                                                                      (let ((x_0
                                                                             (list
                                                                              v_2)))
                                                                        (not
                                                                         result_1)))
                                                                   #t
                                                                   #f)
                                                               (for-loop_0
                                                                result_1
                                                                rest_0)
                                                               result_1)))))
                                                     result_0))))))
                                            (for-loop_0 #t a_0)))
                                         #f))
                                     #f)
                                 (let ((bodys_0
                                        (let ((d_0 (cdr (unwrap v_0))))
                                          (let ((bodys_0
                                                 (begin
                                                   (letrec*
                                                    ((for-loop_0
                                                      (|#%name|
                                                       for-loop
                                                       (lambda (bodys_0 lst_0)
                                                         (begin
                                                           (if (not
                                                                (null?
                                                                 (unwrap
                                                                  lst_0)))
                                                             (let ((v_1
                                                                    (if (pair?
                                                                         (unwrap
                                                                          lst_0))
                                                                      (wrap-car
                                                                       lst_0)
                                                                      lst_0)))
                                                               (let ((rest_0
                                                                      (if (pair?
                                                                           (unwrap
                                                                            lst_0))
                                                                        (wrap-cdr
                                                                         lst_0)
                                                                        null)))
                                                                 (let ((v_2
                                                                        v_1))
                                                                   (let ((bodys_1
                                                                          (let ((bodys_1
                                                                                 (let ((bodys23_0
                                                                                        (let ((d_1
                                                                                               (cdr
                                                                                                (unwrap
                                                                                                 v_2))))
                                                                                          d_1)))
                                                                                   (cons
                                                                                    bodys23_0
                                                                                    bodys_0))))
                                                                            (values
                                                                             bodys_1))))
                                                                     (for-loop_0
                                                                      bodys_1
                                                                      rest_0)))))
                                                             bodys_0))))))
                                                    (for-loop_0 null d_0)))))
                                            (reverse$1 bodys_0)))))
                                   #t)
                                 (if (if (eq? 'begin hd_0) #t #f)
                                   (let ((vs_0
                                          (let ((d_0 (cdr (unwrap v_0))))
                                            d_0)))
                                     (lift?/seq_0 vs_0))
                                   (if (if (eq? 'begin0 hd_0) #t #f)
                                     (let ((vs_0
                                            (let ((d_0 (cdr (unwrap v_0))))
                                              d_0)))
                                       (lift?/seq_0 vs_0))
                                     (if (if (eq? 'quote hd_0) #t #f)
                                       #f
                                       (if (if (eq? 'if hd_0)
                                             (let ((a_0 (cdr (unwrap v_0))))
                                               (let ((p_0 (unwrap a_0)))
                                                 (if (pair? p_0)
                                                   (let ((a_1 (cdr p_0)))
                                                     (let ((p_1 (unwrap a_1)))
                                                       (if (pair? p_1)
                                                         (let ((a_2 (cdr p_1)))
                                                           (let ((p_2
                                                                  (unwrap
                                                                   a_2)))
                                                             (if (pair? p_2)
                                                               (let ((a_3
                                                                      (cdr
                                                                       p_2)))
                                                                 (let ((app_0
                                                                        (unwrap
                                                                         '())))
                                                                   (eq?
                                                                    app_0
                                                                    (unwrap
                                                                     a_3))))
                                                               #f)))
                                                         #f)))
                                                   #f)))
                                             #f)
                                         (call-with-values
                                          (lambda ()
                                            (let ((d_0 (cdr (unwrap v_0))))
                                              (let ((p_0 (unwrap d_0)))
                                                (let ((tst_0
                                                       (let ((a_0 (car p_0)))
                                                         a_0)))
                                                  (call-with-values
                                                   (lambda ()
                                                     (let ((d_1 (cdr p_0)))
                                                       (let ((p_1
                                                              (unwrap d_1)))
                                                         (let ((thn_0
                                                                (let ((a_0
                                                                       (car
                                                                        p_1)))
                                                                  a_0)))
                                                           (let ((els_0
                                                                  (let ((d_2
                                                                         (cdr
                                                                          p_1)))
                                                                    (let ((a_0
                                                                           (car
                                                                            (unwrap
                                                                             d_2))))
                                                                      a_0))))
                                                             (let ((thn_1
                                                                    thn_0))
                                                               (values
                                                                thn_1
                                                                els_0)))))))
                                                   (case-lambda
                                                    ((thn_0 els_0)
                                                     (let ((tst_1 tst_0))
                                                       (values
                                                        tst_1
                                                        thn_0
                                                        els_0)))
                                                    (args
                                                     (raise-binding-result-arity-error
                                                      2
                                                      args))))))))
                                          (case-lambda
                                           ((tst_0 thn_0 els_0)
                                            (let ((or-part_0 (lift?_0 tst_0)))
                                              (if or-part_0
                                                or-part_0
                                                (let ((or-part_1
                                                       (lift?_0 thn_0)))
                                                  (if or-part_1
                                                    or-part_1
                                                    (lift?_0 els_0))))))
                                           (args
                                            (raise-binding-result-arity-error
                                             3
                                             args))))
                                         (if (if (eq?
                                                  'with-continuation-mark*
                                                  hd_0)
                                               (let ((a_0 (cdr (unwrap v_0))))
                                                 (let ((p_0 (unwrap a_0)))
                                                   (if (pair? p_0)
                                                     (let ((a_1 (cdr p_0)))
                                                       (let ((p_1
                                                              (unwrap a_1)))
                                                         (if (pair? p_1)
                                                           (let ((a_2
                                                                  (cdr p_1)))
                                                             (let ((p_2
                                                                    (unwrap
                                                                     a_2)))
                                                               (if (pair? p_2)
                                                                 (let ((a_3
                                                                        (cdr
                                                                         p_2)))
                                                                   (let ((p_3
                                                                          (unwrap
                                                                           a_3)))
                                                                     (if (pair?
                                                                          p_3)
                                                                       (let ((a_4
                                                                              (cdr
                                                                               p_3)))
                                                                         (let ((app_0
                                                                                (unwrap
                                                                                 '())))
                                                                           (eq?
                                                                            app_0
                                                                            (unwrap
                                                                             a_4))))
                                                                       #f)))
                                                                 #f)))
                                                           #f)))
                                                     #f)))
                                               #f)
                                           (call-with-values
                                            (lambda ()
                                              (let ((d_0 (cdr (unwrap v_0))))
                                                (let ((d_1 (cdr (unwrap d_0))))
                                                  (let ((p_0 (unwrap d_1)))
                                                    (let ((key_0
                                                           (let ((a_0
                                                                  (car p_0)))
                                                             a_0)))
                                                      (call-with-values
                                                       (lambda ()
                                                         (let ((d_2 (cdr p_0)))
                                                           (let ((p_1
                                                                  (unwrap
                                                                   d_2)))
                                                             (let ((val_0
                                                                    (let ((a_0
                                                                           (car
                                                                            p_1)))
                                                                      a_0)))
                                                               (let ((body_0
                                                                      (let ((d_3
                                                                             (cdr
                                                                              p_1)))
                                                                        (let ((a_0
                                                                               (car
                                                                                (unwrap
                                                                                 d_3))))
                                                                          a_0))))
                                                                 (let ((val_1
                                                                        val_0))
                                                                   (values
                                                                    val_1
                                                                    body_0)))))))
                                                       (case-lambda
                                                        ((val_0 body_0)
                                                         (let ((key_1 key_0))
                                                           (values
                                                            key_1
                                                            val_0
                                                            body_0)))
                                                        (args
                                                         (raise-binding-result-arity-error
                                                          2
                                                          args)))))))))
                                            (case-lambda
                                             ((key_0 val_0 body_0)
                                              (let ((or-part_0
                                                     (lift?_0 key_0)))
                                                (if or-part_0
                                                  or-part_0
                                                  (let ((or-part_1
                                                         (lift?_0 val_0)))
                                                    (if or-part_1
                                                      or-part_1
                                                      (lift?_0 body_0))))))
                                             (args
                                              (raise-binding-result-arity-error
                                               3
                                               args))))
                                           (if (if (eq? 'set! hd_0)
                                                 (let ((a_0
                                                        (cdr (unwrap v_0))))
                                                   (let ((p_0 (unwrap a_0)))
                                                     (if (pair? p_0)
                                                       (let ((a_1 (cdr p_0)))
                                                         (let ((p_1
                                                                (unwrap a_1)))
                                                           (if (pair? p_1)
                                                             (let ((a_2
                                                                    (cdr p_1)))
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_2))))
                                                             #f)))
                                                       #f)))
                                                 #f)
                                             (let ((rhs_0
                                                    (let ((d_0
                                                           (cdr (unwrap v_0))))
                                                      (let ((d_1
                                                             (cdr
                                                              (unwrap d_0))))
                                                        (let ((a_0
                                                               (car
                                                                (unwrap d_1))))
                                                          a_0)))))
                                               (lift?_0 rhs_0))
                                             (if (if (eq?
                                                      '|#%variable-reference|
                                                      hd_0)
                                                   (let ((a_0
                                                          (cdr (unwrap v_0))))
                                                     (let ((app_0
                                                            (unwrap '())))
                                                       (eq?
                                                        app_0
                                                        (unwrap a_0))))
                                                   #f)
                                               #f
                                               (if (if (eq?
                                                        '|#%variable-reference|
                                                        hd_0)
                                                     (let ((a_0
                                                            (cdr
                                                             (unwrap v_0))))
                                                       (let ((p_0
                                                              (unwrap a_0)))
                                                         (if (pair? p_0)
                                                           (let ((a_1
                                                                  (cdr p_0)))
                                                             (let ((app_0
                                                                    (unwrap
                                                                     '())))
                                                               (eq?
                                                                app_0
                                                                (unwrap a_1))))
                                                           #f)))
                                                     #f)
                                                 (let ((id_0
                                                        (let ((d_0
                                                               (cdr
                                                                (unwrap v_0))))
                                                          (let ((a_0
                                                                 (car
                                                                  (unwrap
                                                                   d_0))))
                                                            a_0))))
                                                   #f)
                                                 (if (let ((p_0 (unwrap v_0)))
                                                       (if (pair? p_0) #t #f))
                                                   (call-with-values
                                                    (lambda ()
                                                      (let ((p_0 (unwrap v_0)))
                                                        (let ((rator_0
                                                               (let ((a_0
                                                                      (car
                                                                       p_0)))
                                                                 a_0)))
                                                          (let ((rands_0
                                                                 (let ((d_0
                                                                        (cdr
                                                                         p_0)))
                                                                   d_0)))
                                                            (let ((rator_1
                                                                   rator_0))
                                                              (values
                                                               rator_1
                                                               rands_0))))))
                                                    (case-lambda
                                                     ((rator_0 rands_0)
                                                      (let ((or-part_0
                                                             (lift?_0
                                                              rator_0)))
                                                        (if or-part_0
                                                          or-part_0
                                                          (lift?/seq_0
                                                           rands_0))))
                                                     (args
                                                      (raise-binding-result-arity-error
                                                       2
                                                       args))))
                                                   #f)))))))))))))))))))))
           (lookup-indirected-variable_0
            (|#%name|
             lookup-indirected-variable
             (lambda (lifts_0 var_0 need-check?_0)
               (begin
                 (let ((ind_0 (hash-ref lifts_0 var_0 #f)))
                   (let ((or-part_0
                          (if (indirected? ind_0)
                            (begin
                              (if need-check?_0
                                (set-indirected-check?! ind_0 #t)
                                (void))
                              ind_0)
                            #f)))
                     (if or-part_0
                       or-part_0
                       (let ((ind_1 (indirected2.1 need-check?_0)))
                         (begin (hash-set! lifts_0 var_0 ind_1) ind_1)))))))))
           (loop_0
            (|#%name|
             loop
             (lambda (lams_0 clauses_0 bindings_0)
               (begin
                 (if (null? lams_0)
                   (if (null? bindings_0)
                     (list* 'case-lambda (reverse$1 clauses_0))
                     (list 'letrec bindings_0 (loop_0 null clauses_0 null)))
                   (let ((v_0 (car lams_0)))
                     (let ((hd_0
                            (let ((p_0 (unwrap v_0)))
                              (if (pair? p_0) (unwrap (car p_0)) #f))))
                       (if (if (eq? 'letrec hd_0)
                             (let ((a_0 (cdr (unwrap v_0))))
                               (let ((p_0 (unwrap a_0)))
                                 (if (pair? p_0)
                                   (let ((a_1 (cdr p_0)))
                                     (let ((p_1 (unwrap a_1)))
                                       (if (pair? p_1)
                                         (let ((a_2 (cdr p_1)))
                                           (let ((app_0 (unwrap '())))
                                             (eq? app_0 (unwrap a_2))))
                                         #f)))
                                   #f)))
                             #f)
                         (call-with-values
                          (lambda ()
                            (let ((d_0 (cdr (unwrap v_0))))
                              (let ((p_0 (unwrap d_0)))
                                (let ((new-bindings_0
                                       (let ((a_0 (car p_0))) a_0)))
                                  (let ((lam_0
                                         (let ((d_1 (cdr p_0)))
                                           (let ((a_0 (car (unwrap d_1))))
                                             a_0))))
                                    (let ((new-bindings_1 new-bindings_0))
                                      (values new-bindings_1 lam_0)))))))
                          (case-lambda
                           ((new-bindings_0 lam_0)
                            (let ((app_0 (cons lam_0 (cdr lams_0))))
                              (loop_0
                               app_0
                               clauses_0
                               (append
                                (unwrap-list new-bindings_0)
                                bindings_0))))
                           (args (raise-binding-result-arity-error 2 args))))
                         (if (if (eq? 'lambda hd_0)
                               (let ((a_0 (cdr (unwrap v_0))))
                                 (let ((p_0 (unwrap a_0)))
                                   (if (pair? p_0) #t #f)))
                               #f)
                           (call-with-values
                            (lambda ()
                              (let ((d_0 (cdr (unwrap v_0))))
                                (let ((p_0 (unwrap d_0)))
                                  (let ((args_0 (let ((a_0 (car p_0))) a_0)))
                                    (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                                      (let ((args_1 args_0))
                                        (values args_1 body_0)))))))
                            (case-lambda
                             ((args_0 body_0)
                              (loop_0
                               (cdr lams_0)
                               (cons (list* args_0 body_0) clauses_0)
                               bindings_0))
                             (args (raise-binding-result-arity-error 2 args))))
                           (error 'match "failed ~e" v_0))))))))))
           (loop_1
            (|#%name|
             loop
             (lambda (binds_0 lifts_0 new-lifts_0 frees_0 todo_0)
               (begin
                 (if (null? todo_0)
                   frees_0
                   (let ((v_0 (car todo_0)))
                     (let ((info_0 (hash-ref lifts_0 v_0 #f)))
                       (if (liftable? info_0)
                         (let ((v-binds_0 (liftable-binds info_0)))
                           (let ((app_0 (hash-keys (liftable-frees info_0))))
                             (v-loop_0
                              binds_0
                              lifts_0
                              new-lifts_0
                              v-binds_0
                              app_0
                              frees_0
                              (cdr todo_0))))
                         (if (indirected? info_0)
                           (begin
                             (hash-set! new-lifts_0 v_0 info_0)
                             (loop_1
                              binds_0
                              lifts_0
                              new-lifts_0
                              frees_0
                              (cdr todo_0)))
                           (loop_1
                            binds_0
                            lifts_0
                            new-lifts_0
                            frees_0
                            (cdr todo_0)))))))))))
           (loop_2
            (|#%name|
             loop
             (lambda (empties_0 frees_0 lifts_0 vs_0 ids_0)
               (begin
                 (if (null? (unwrap ids_0))
                   (convert-lifted-calls-in-seq_0
                    vs_0
                    lifts_0
                    frees_0
                    empties_0)
                   (if (pair? (unwrap ids_0))
                     (let ((id_0 (wrap-car ids_0)))
                       (if (indirected? (hash-ref lifts_0 (unwrap id_0) #f))
                         (list
                          (list*
                           'let
                           (list (list id_0 (list 'box id_0)))
                           (loop_2
                            empties_0
                            frees_0
                            lifts_0
                            vs_0
                            (wrap-cdr ids_0))))
                         (loop_2
                          empties_0
                          frees_0
                          lifts_0
                          vs_0
                          (wrap-cdr ids_0))))
                     (loop_2 empties_0 frees_0 lifts_0 vs_0 (list ids_0))))))))
           (rebuild-let_0
            (|#%name|
             rebuild-let
             (lambda (let-id_0 bindings_0 body_0)
               (begin
                 (if (not (null? bindings_0))
                   (list* let-id_0 bindings_0 body_0)
                   (if (if (pair? body_0) (null? (cdr body_0)) #f)
                     (car body_0)
                     (list* 'begin body_0)))))))
           (record-empty-closure!_0
            (|#%name|
             record-empty-closure!
             (lambda (lifts_0 v_0)
               (begin (hash-set! lifts_0 v_0 kw2080)))))
           (remove-free/add-bind_0
            (|#%name|
             remove-free/add-bind
             (lambda (lifts_0 frees+binds_0 arg_0)
               (begin
                 (let ((info_0 (hash-ref lifts_0 arg_0 #f)))
                   (if (liftable? info_0)
                     (let ((app_0 (car frees+binds_0)))
                       (cons app_0 (hash-set (cdr frees+binds_0) arg_0 #t)))
                     (let ((app_0 (hash-remove (car frees+binds_0) arg_0)))
                       (cons
                        app_0
                        (hash-set (cdr frees+binds_0) arg_0 #t)))))))))
           (remove-frees/add-binds_0
            (|#%name|
             remove-frees/add-binds
             (lambda (args_0 frees+binds_0 lifts_0)
               (begin
                 (letrec*
                  ((loop_3
                    (|#%name|
                     loop
                     (lambda (args_1 frees+binds_1)
                       (begin
                         (if (null? (unwrap args_1))
                           frees+binds_1
                           (if (pair? (unwrap args_1))
                             (let ((app_0 (wrap-cdr args_1)))
                               (loop_3
                                app_0
                                (remove-free/add-bind_0
                                 lifts_0
                                 frees+binds_1
                                 (unwrap (wrap-car args_1)))))
                             (remove-free/add-bind_0
                              lifts_0
                              frees+binds_1
                              (unwrap args_1)))))))))
                  (loop_3 args_0 frees+binds_0))))))
           (union_0
            (|#%name|
             union
             (lambda (s1_0 s2_0)
               (begin
                 (if (let ((app_0 (hash-count s1_0)))
                       (> app_0 (hash-count s2_0)))
                   (union_0 s2_0 s1_0)
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (s2_1 i_0)
                           (begin
                             (if i_0
                               (let ((k_0 (hash-iterate-key s1_0 i_0)))
                                 (let ((s2_2
                                        (let ((s2_2 (hash-set s2_1 k_0 #t)))
                                          (values s2_2))))
                                   (for-loop_0
                                    s2_2
                                    (hash-iterate-next s1_0 i_0))))
                               s2_1))))))
                      (for-loop_0 s2_0 (hash-iterate-first s1_0)))))))))
           (v-loop_0
            (|#%name|
             v-loop
             (lambda (binds_0
                      lifts_0
                      new-lifts_0
                      v-binds_0
                      v-frees_0
                      frees_0
                      todo_0)
               (begin
                 (if (null? v-frees_0)
                   (loop_1 binds_0 lifts_0 new-lifts_0 frees_0 todo_0)
                   (let ((g_0 (car v-frees_0)))
                     (if (let ((or-part_0 (hash-ref frees_0 g_0 #f)))
                           (if or-part_0
                             or-part_0
                             (let ((or-part_1 (hash-ref binds_0 g_0 #f)))
                               (if or-part_1
                                 or-part_1
                                 (hash-ref v-binds_0 g_0 #f)))))
                       (v-loop_0
                        binds_0
                        lifts_0
                        new-lifts_0
                        v-binds_0
                        (cdr v-frees_0)
                        frees_0
                        todo_0)
                       (let ((app_0 (cdr v-frees_0)))
                         (v-loop_0
                          binds_0
                          lifts_0
                          new-lifts_0
                          v-binds_0
                          app_0
                          (hash-set frees_0 g_0 #t)
                          (cons g_0 todo_0)))))))))))
    (lambda (v_0 leave-loops-intact?_0)
      (letrec*
       ((find-loops_0
         (|#%name|
          find-loops
          (lambda (v_1 lifts_0 loop-if-tail_0 loops_0)
            (begin
              (let ((hd_0
                     (let ((p_0 (unwrap v_1)))
                       (if (pair? p_0) (unwrap (car p_0)) #f))))
                (if (if (eq? 'letrec hd_0) #t #f)
                  (find-letrec-loops_0
                   find-loops_0
                   v_1
                   lifts_0
                   loop-if-tail_0
                   loops_0)
                  (if (if (eq? 'letrec* hd_0) #t #f)
                    (find-letrec-loops_0
                     find-loops_0
                     v_1
                     lifts_0
                     loop-if-tail_0
                     loops_0)
                    (if (let ((p_0 (unwrap v_1)))
                          (if (pair? p_0)
                            (if (let ((a_0 (car p_0)))
                                  (let ((p_1 (unwrap a_0)))
                                    (if (pair? p_1)
                                      (if (let ((a_1 (car p_1)))
                                            (let ((app_0 (unwrap 'letrec)))
                                              (eq? app_0 (unwrap a_1))))
                                        (let ((a_1 (cdr p_1)))
                                          (let ((p_2 (unwrap a_1)))
                                            (if (pair? p_2)
                                              (if (let ((a_2 (car p_2)))
                                                    (let ((p_3 (unwrap a_2)))
                                                      (if (pair? p_3)
                                                        (if (let ((a_3
                                                                   (car p_3)))
                                                              (let ((p_4
                                                                     (unwrap
                                                                      a_3)))
                                                                (if (pair? p_4)
                                                                  (let ((a_4
                                                                         (cdr
                                                                          p_4)))
                                                                    (let ((p_5
                                                                           (unwrap
                                                                            a_4)))
                                                                      (if (pair?
                                                                           p_5)
                                                                        (let ((a_5
                                                                               (cdr
                                                                                p_5)))
                                                                          (let ((app_0
                                                                                 (unwrap
                                                                                  '())))
                                                                            (eq?
                                                                             app_0
                                                                             (unwrap
                                                                              a_5))))
                                                                        #f)))
                                                                  #f)))
                                                          (let ((a_3
                                                                 (cdr p_3)))
                                                            (let ((app_0
                                                                   (unwrap
                                                                    '())))
                                                              (eq?
                                                               app_0
                                                               (unwrap a_3))))
                                                          #f)
                                                        #f)))
                                                (let ((a_2 (cdr p_2)))
                                                  (let ((p_3 (unwrap a_2)))
                                                    (if (pair? p_3)
                                                      (let ((a_3 (cdr p_3)))
                                                        (let ((app_0
                                                               (unwrap '())))
                                                          (eq?
                                                           app_0
                                                           (unwrap a_3))))
                                                      #f)))
                                                #f)
                                              #f)))
                                        #f)
                                      #f)))
                              (let ((a_0 (cdr p_0))) (wrap-list? a_0))
                              #f)
                            #f))
                      (call-with-values
                       (lambda ()
                         (let ((p_0 (unwrap v_1)))
                           (call-with-values
                            (lambda ()
                              (let ((a_0 (car p_0)))
                                (let ((d_0 (cdr (unwrap a_0))))
                                  (let ((p_1 (unwrap d_0)))
                                    (call-with-values
                                     (lambda ()
                                       (let ((a_1 (car p_1)))
                                         (let ((a_2 (car (unwrap a_1))))
                                           (let ((p_2 (unwrap a_2)))
                                             (let ((id_0
                                                    (let ((a_3 (car p_2)))
                                                      a_3)))
                                               (let ((rhs_0
                                                      (let ((d_1 (cdr p_2)))
                                                        (let ((a_3
                                                               (car
                                                                (unwrap d_1))))
                                                          a_3))))
                                                 (let ((id_1 id_0))
                                                   (values id_1 rhs_0))))))))
                                     (case-lambda
                                      ((id_0 rhs_0)
                                       (let ((rator_0
                                              (let ((d_1 (cdr p_1)))
                                                (let ((a_1 (car (unwrap d_1))))
                                                  a_1))))
                                         (let ((id_1 id_0) (rhs_1 rhs_0))
                                           (values id_1 rhs_1 rator_0))))
                                      (args
                                       (raise-binding-result-arity-error
                                        2
                                        args))))))))
                            (case-lambda
                             ((id_0 rhs_0 rator_0)
                              (let ((rands_0
                                     (let ((d_0 (cdr p_0)))
                                       (unwrap-list d_0))))
                                (let ((id_1 id_0)
                                      (rhs_1 rhs_0)
                                      (rator_1 rator_0))
                                  (values id_1 rhs_1 rator_1 rands_0))))
                             (args
                              (raise-binding-result-arity-error 3 args))))))
                       (case-lambda
                        ((id_0 rhs_0 rator_0 rands_0)
                         (find-loops_0
                          (list
                           'letrec
                           (list (list id_0 rhs_0))
                           (list* rator_0 rands_0))
                          lifts_0
                          loop-if-tail_0
                          loops_0))
                        (args (raise-binding-result-arity-error 4 args))))
                      (if (let ((p_0 (unwrap v_1)))
                            (if (pair? p_0)
                              (if (let ((a_0 (car p_0)))
                                    (let ((p_1 (unwrap a_0)))
                                      (if (pair? p_1)
                                        (if (let ((a_1 (car p_1)))
                                              (let ((app_0 (unwrap 'letrec*)))
                                                (eq? app_0 (unwrap a_1))))
                                          (let ((a_1 (cdr p_1)))
                                            (let ((p_2 (unwrap a_1)))
                                              (if (pair? p_2)
                                                (if (let ((a_2 (car p_2)))
                                                      (let ((p_3 (unwrap a_2)))
                                                        (if (pair? p_3)
                                                          (if (let ((a_3
                                                                     (car
                                                                      p_3)))
                                                                (let ((p_4
                                                                       (unwrap
                                                                        a_3)))
                                                                  (if (pair?
                                                                       p_4)
                                                                    (let ((a_4
                                                                           (cdr
                                                                            p_4)))
                                                                      (let ((p_5
                                                                             (unwrap
                                                                              a_4)))
                                                                        (if (pair?
                                                                             p_5)
                                                                          (let ((a_5
                                                                                 (cdr
                                                                                  p_5)))
                                                                            (let ((app_0
                                                                                   (unwrap
                                                                                    '())))
                                                                              (eq?
                                                                               app_0
                                                                               (unwrap
                                                                                a_5))))
                                                                          #f)))
                                                                    #f)))
                                                            (let ((a_3
                                                                   (cdr p_3)))
                                                              (let ((app_0
                                                                     (unwrap
                                                                      '())))
                                                                (eq?
                                                                 app_0
                                                                 (unwrap
                                                                  a_3))))
                                                            #f)
                                                          #f)))
                                                  (let ((a_2 (cdr p_2)))
                                                    (let ((p_3 (unwrap a_2)))
                                                      (if (pair? p_3)
                                                        (let ((a_3 (cdr p_3)))
                                                          (let ((app_0
                                                                 (unwrap '())))
                                                            (eq?
                                                             app_0
                                                             (unwrap a_3))))
                                                        #f)))
                                                  #f)
                                                #f)))
                                          #f)
                                        #f)))
                                (let ((a_0 (cdr p_0))) (wrap-list? a_0))
                                #f)
                              #f))
                        (call-with-values
                         (lambda ()
                           (let ((p_0 (unwrap v_1)))
                             (call-with-values
                              (lambda ()
                                (let ((a_0 (car p_0)))
                                  (let ((d_0 (cdr (unwrap a_0))))
                                    (let ((p_1 (unwrap d_0)))
                                      (call-with-values
                                       (lambda ()
                                         (let ((a_1 (car p_1)))
                                           (let ((a_2 (car (unwrap a_1))))
                                             (let ((p_2 (unwrap a_2)))
                                               (let ((id_0
                                                      (let ((a_3 (car p_2)))
                                                        a_3)))
                                                 (let ((rhs_0
                                                        (let ((d_1 (cdr p_2)))
                                                          (let ((a_3
                                                                 (car
                                                                  (unwrap
                                                                   d_1))))
                                                            a_3))))
                                                   (let ((id_1 id_0))
                                                     (values id_1 rhs_0))))))))
                                       (case-lambda
                                        ((id_0 rhs_0)
                                         (let ((rator_0
                                                (let ((d_1 (cdr p_1)))
                                                  (let ((a_1
                                                         (car (unwrap d_1))))
                                                    a_1))))
                                           (let ((id_1 id_0) (rhs_1 rhs_0))
                                             (values id_1 rhs_1 rator_0))))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))))))
                              (case-lambda
                               ((id_0 rhs_0 rator_0)
                                (let ((rands_0
                                       (let ((d_0 (cdr p_0)))
                                         (unwrap-list d_0))))
                                  (let ((id_1 id_0)
                                        (rhs_1 rhs_0)
                                        (rator_1 rator_0))
                                    (values id_1 rhs_1 rator_1 rands_0))))
                               (args
                                (raise-binding-result-arity-error 3 args))))))
                         (case-lambda
                          ((id_0 rhs_0 rator_0 rands_0)
                           (find-loops_0
                            (list
                             'letrec
                             (list (list id_0 rhs_0))
                             (list* rator_0 rands_0))
                            lifts_0
                            loop-if-tail_0
                            loops_0))
                          (args (raise-binding-result-arity-error 4 args))))
                        (if (if (eq? 'let hd_0) #t #f)
                          (find-let-loops_0
                           find-loops_0
                           v_1
                           lifts_0
                           loop-if-tail_0
                           loops_0)
                          (if (if (eq? 'lambda hd_0)
                                (let ((a_0 (cdr (unwrap v_1))))
                                  (let ((p_0 (unwrap a_0)))
                                    (if (pair? p_0) #t #f)))
                                #f)
                            (call-with-values
                             (lambda ()
                               (let ((d_0 (cdr (unwrap v_1))))
                                 (let ((p_0 (unwrap d_0)))
                                   (let ((args_0 (let ((a_0 (car p_0))) a_0)))
                                     (let ((body_0
                                            (let ((d_1 (cdr p_0))) d_1)))
                                       (let ((args_1 args_0))
                                         (values args_1 body_0)))))))
                             (case-lambda
                              ((args_0 body_0)
                               (find-seq-loops_0
                                find-loops_0
                                body_0
                                lifts_0
                                hash2610
                                loops_0))
                              (args
                               (raise-binding-result-arity-error 2 args))))
                            (if (if (eq? 'case-lambda hd_0)
                                  (let ((a_0 (cdr (unwrap v_1))))
                                    (if (wrap-list? a_0)
                                      (begin
                                        (letrec*
                                         ((for-loop_0
                                           (|#%name|
                                            for-loop
                                            (lambda (result_0 lst_0)
                                              (begin
                                                (if (not
                                                     (null? (unwrap lst_0)))
                                                  (let ((v_2
                                                         (if (pair?
                                                              (unwrap lst_0))
                                                           (wrap-car lst_0)
                                                           lst_0)))
                                                    (let ((rest_0
                                                           (if (pair?
                                                                (unwrap lst_0))
                                                             (wrap-cdr lst_0)
                                                             null)))
                                                      (let ((v_3 v_2))
                                                        (let ((result_1
                                                               (let ((result_1
                                                                      (let ((p_0
                                                                             (unwrap
                                                                              v_3)))
                                                                        (if (pair?
                                                                             p_0)
                                                                          #t
                                                                          #f))))
                                                                 (values
                                                                  result_1))))
                                                          (if (if (not
                                                                   (let ((x_0
                                                                          (list
                                                                           v_3)))
                                                                     (not
                                                                      result_1)))
                                                                #t
                                                                #f)
                                                            (for-loop_0
                                                             result_1
                                                             rest_0)
                                                            result_1)))))
                                                  result_0))))))
                                         (for-loop_0 #t a_0)))
                                      #f))
                                  #f)
                              (call-with-values
                               (lambda ()
                                 (let ((d_0 (cdr (unwrap v_1))))
                                   (call-with-values
                                    (lambda ()
                                      (begin
                                        (letrec*
                                         ((for-loop_0
                                           (|#%name|
                                            for-loop
                                            (lambda (argss_0 bodys_0 lst_0)
                                              (begin
                                                (if (not
                                                     (null? (unwrap lst_0)))
                                                  (let ((v_2
                                                         (if (pair?
                                                              (unwrap lst_0))
                                                           (wrap-car lst_0)
                                                           lst_0)))
                                                    (let ((rest_0
                                                           (if (pair?
                                                                (unwrap lst_0))
                                                             (wrap-cdr lst_0)
                                                             null)))
                                                      (let ((v_3 v_2))
                                                        (call-with-values
                                                         (lambda ()
                                                           (call-with-values
                                                            (lambda ()
                                                              (call-with-values
                                                               (lambda ()
                                                                 (let ((p_0
                                                                        (unwrap
                                                                         v_3)))
                                                                   (let ((argss_1
                                                                          (let ((a_0
                                                                                 (car
                                                                                  p_0)))
                                                                            a_0)))
                                                                     (let ((bodys_1
                                                                            (let ((d_1
                                                                                   (cdr
                                                                                    p_0)))
                                                                              d_1)))
                                                                       (let ((argss_2
                                                                              argss_1))
                                                                         (values
                                                                          argss_2
                                                                          bodys_1))))))
                                                               (case-lambda
                                                                ((argss35_0
                                                                  bodys36_0)
                                                                 (values
                                                                  (cons
                                                                   argss35_0
                                                                   argss_0)
                                                                  (cons
                                                                   bodys36_0
                                                                   bodys_0)))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))
                                                            (case-lambda
                                                             ((argss_1 bodys_1)
                                                              (values
                                                               argss_1
                                                               bodys_1))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               2
                                                               args)))))
                                                         (case-lambda
                                                          ((argss_1 bodys_1)
                                                           (for-loop_0
                                                            argss_1
                                                            bodys_1
                                                            rest_0))
                                                          (args
                                                           (raise-binding-result-arity-error
                                                            2
                                                            args)))))))
                                                  (values
                                                   argss_0
                                                   bodys_0)))))))
                                         (for-loop_0 null null d_0))))
                                    (case-lambda
                                     ((argss_0 bodys_0)
                                      (let ((app_0 (reverse$1 argss_0)))
                                        (values app_0 (reverse$1 bodys_0))))
                                     (args
                                      (raise-binding-result-arity-error
                                       2
                                       args))))))
                               (case-lambda
                                ((argss_0 bodys_0)
                                 (begin
                                   (letrec*
                                    ((for-loop_0
                                      (|#%name|
                                       for-loop
                                       (lambda (loops_1 lst_0)
                                         (begin
                                           (if (pair? lst_0)
                                             (let ((body_0 (unsafe-car lst_0)))
                                               (let ((rest_0
                                                      (unsafe-cdr lst_0)))
                                                 (let ((loops_2
                                                        (let ((loops_2
                                                               (find-seq-loops_0
                                                                find-loops_0
                                                                body_0
                                                                lifts_0
                                                                hash2610
                                                                loops_1)))
                                                          (values loops_2))))
                                                   (for-loop_0
                                                    loops_2
                                                    rest_0))))
                                             loops_1))))))
                                    (for-loop_0 loops_0 bodys_0))))
                                (args
                                 (raise-binding-result-arity-error 2 args))))
                              (if (if (eq? 'begin hd_0) #t #f)
                                (let ((vs_0
                                       (let ((d_0 (cdr (unwrap v_1)))) d_0)))
                                  (find-seq-loops_0
                                   find-loops_0
                                   vs_0
                                   lifts_0
                                   loop-if-tail_0
                                   loops_0))
                                (if (if (eq? 'begin0 hd_0)
                                      (let ((a_0 (cdr (unwrap v_1))))
                                        (let ((p_0 (unwrap a_0)))
                                          (if (pair? p_0) #t #f)))
                                      #f)
                                  (call-with-values
                                   (lambda ()
                                     (let ((d_0 (cdr (unwrap v_1))))
                                       (let ((p_0 (unwrap d_0)))
                                         (let ((v_2
                                                (let ((a_0 (car p_0))) a_0)))
                                           (let ((vs_0
                                                  (let ((d_1 (cdr p_0))) d_1)))
                                             (let ((v_3 v_2))
                                               (values v_3 vs_0)))))))
                                   (case-lambda
                                    ((v_2 vs_0)
                                     (let ((new-loops_0
                                            (find-loops_0
                                             v_2
                                             lifts_0
                                             hash2610
                                             loops_0)))
                                       (if (null? vs_0)
                                         new-loops_0
                                         (find-seq-loops_0
                                          find-loops_0
                                          vs_0
                                          lifts_0
                                          hash2610
                                          new-loops_0))))
                                    (args
                                     (raise-binding-result-arity-error
                                      2
                                      args))))
                                  (if (if (eq? 'quote hd_0) #t #f)
                                    loops_0
                                    (if (if (eq? 'if hd_0)
                                          (let ((a_0 (cdr (unwrap v_1))))
                                            (let ((p_0 (unwrap a_0)))
                                              (if (pair? p_0)
                                                (let ((a_1 (cdr p_0)))
                                                  (let ((p_1 (unwrap a_1)))
                                                    (if (pair? p_1)
                                                      (let ((a_2 (cdr p_1)))
                                                        (let ((p_2
                                                               (unwrap a_2)))
                                                          (if (pair? p_2)
                                                            (let ((a_3
                                                                   (cdr p_2)))
                                                              (let ((app_0
                                                                     (unwrap
                                                                      '())))
                                                                (eq?
                                                                 app_0
                                                                 (unwrap
                                                                  a_3))))
                                                            #f)))
                                                      #f)))
                                                #f)))
                                          #f)
                                      (call-with-values
                                       (lambda ()
                                         (let ((d_0 (cdr (unwrap v_1))))
                                           (let ((p_0 (unwrap d_0)))
                                             (let ((tst_0
                                                    (let ((a_0 (car p_0)))
                                                      a_0)))
                                               (call-with-values
                                                (lambda ()
                                                  (let ((d_1 (cdr p_0)))
                                                    (let ((p_1 (unwrap d_1)))
                                                      (let ((thn_0
                                                             (let ((a_0
                                                                    (car p_1)))
                                                               a_0)))
                                                        (let ((els_0
                                                               (let ((d_2
                                                                      (cdr
                                                                       p_1)))
                                                                 (let ((a_0
                                                                        (car
                                                                         (unwrap
                                                                          d_2))))
                                                                   a_0))))
                                                          (let ((thn_1 thn_0))
                                                            (values
                                                             thn_1
                                                             els_0)))))))
                                                (case-lambda
                                                 ((thn_0 els_0)
                                                  (let ((tst_1 tst_0))
                                                    (values
                                                     tst_1
                                                     thn_0
                                                     els_0)))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   2
                                                   args))))))))
                                       (case-lambda
                                        ((tst_0 thn_0 els_0)
                                         (let ((loops_1
                                                (find-loops_0
                                                 tst_0
                                                 lifts_0
                                                 hash2610
                                                 loops_0)))
                                           (let ((loops_2
                                                  (find-loops_0
                                                   thn_0
                                                   lifts_0
                                                   loop-if-tail_0
                                                   loops_1)))
                                             (let ((loops_3
                                                    (find-loops_0
                                                     els_0
                                                     lifts_0
                                                     loop-if-tail_0
                                                     loops_2)))
                                               loops_3))))
                                        (args
                                         (raise-binding-result-arity-error
                                          3
                                          args))))
                                      (if (if (eq?
                                               'with-continuation-mark*
                                               hd_0)
                                            (let ((a_0 (cdr (unwrap v_1))))
                                              (let ((p_0 (unwrap a_0)))
                                                (if (pair? p_0)
                                                  (let ((a_1 (cdr p_0)))
                                                    (let ((p_1 (unwrap a_1)))
                                                      (if (pair? p_1)
                                                        (let ((a_2 (cdr p_1)))
                                                          (let ((p_2
                                                                 (unwrap a_2)))
                                                            (if (pair? p_2)
                                                              (let ((a_3
                                                                     (cdr
                                                                      p_2)))
                                                                (let ((p_3
                                                                       (unwrap
                                                                        a_3)))
                                                                  (if (pair?
                                                                       p_3)
                                                                    (let ((a_4
                                                                           (cdr
                                                                            p_3)))
                                                                      (let ((app_0
                                                                             (unwrap
                                                                              '())))
                                                                        (eq?
                                                                         app_0
                                                                         (unwrap
                                                                          a_4))))
                                                                    #f)))
                                                              #f)))
                                                        #f)))
                                                  #f)))
                                            #f)
                                        (call-with-values
                                         (lambda ()
                                           (let ((d_0 (cdr (unwrap v_1))))
                                             (let ((d_1 (cdr (unwrap d_0))))
                                               (let ((p_0 (unwrap d_1)))
                                                 (let ((key_0
                                                        (let ((a_0 (car p_0)))
                                                          a_0)))
                                                   (call-with-values
                                                    (lambda ()
                                                      (let ((d_2 (cdr p_0)))
                                                        (let ((p_1
                                                               (unwrap d_2)))
                                                          (let ((val_0
                                                                 (let ((a_0
                                                                        (car
                                                                         p_1)))
                                                                   a_0)))
                                                            (let ((body_0
                                                                   (let ((d_3
                                                                          (cdr
                                                                           p_1)))
                                                                     (let ((a_0
                                                                            (car
                                                                             (unwrap
                                                                              d_3))))
                                                                       a_0))))
                                                              (let ((val_1
                                                                     val_0))
                                                                (values
                                                                 val_1
                                                                 body_0)))))))
                                                    (case-lambda
                                                     ((val_0 body_0)
                                                      (let ((key_1 key_0))
                                                        (values
                                                         key_1
                                                         val_0
                                                         body_0)))
                                                     (args
                                                      (raise-binding-result-arity-error
                                                       2
                                                       args)))))))))
                                         (case-lambda
                                          ((key_0 val_0 body_0)
                                           (let ((loops_1
                                                  (find-loops_0
                                                   key_0
                                                   lifts_0
                                                   hash2610
                                                   loops_0)))
                                             (let ((loops_2
                                                    (find-loops_0
                                                     val_0
                                                     lifts_0
                                                     hash2610
                                                     loops_1)))
                                               (find-loops_0
                                                body_0
                                                lifts_0
                                                loop-if-tail_0
                                                loops_2))))
                                          (args
                                           (raise-binding-result-arity-error
                                            3
                                            args))))
                                        (if (if (eq? 'set! hd_0)
                                              (let ((a_0 (cdr (unwrap v_1))))
                                                (let ((p_0 (unwrap a_0)))
                                                  (if (pair? p_0)
                                                    (let ((a_1 (cdr p_0)))
                                                      (let ((p_1 (unwrap a_1)))
                                                        (if (pair? p_1)
                                                          (let ((a_2
                                                                 (cdr p_1)))
                                                            (let ((app_0
                                                                   (unwrap
                                                                    '())))
                                                              (eq?
                                                               app_0
                                                               (unwrap a_2))))
                                                          #f)))
                                                    #f)))
                                              #f)
                                          (call-with-values
                                           (lambda ()
                                             (let ((d_0 (cdr (unwrap v_1))))
                                               (let ((p_0 (unwrap d_0)))
                                                 (let ((id_0
                                                        (let ((a_0 (car p_0)))
                                                          a_0)))
                                                   (let ((rhs_0
                                                          (let ((d_1
                                                                 (cdr p_0)))
                                                            (let ((a_0
                                                                   (car
                                                                    (unwrap
                                                                     d_1))))
                                                              a_0))))
                                                     (let ((id_1 id_0))
                                                       (values
                                                        id_1
                                                        rhs_0)))))))
                                           (case-lambda
                                            ((id_0 rhs_0)
                                             (find-loops_0
                                              rhs_0
                                              lifts_0
                                              hash2610
                                              loops_0))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args))))
                                          (if (if (eq?
                                                   '|#%variable-reference|
                                                   hd_0)
                                                #t
                                                #f)
                                            (error
                                             'internal-error
                                             "lift: unexpected variable reference")
                                            (if (if (eq?
                                                     'call-with-values
                                                     hd_0)
                                                  (let ((a_0
                                                         (cdr (unwrap v_1))))
                                                    (let ((p_0 (unwrap a_0)))
                                                      (if (pair? p_0)
                                                        (let ((a_1 (cdr p_0)))
                                                          (let ((p_1
                                                                 (unwrap a_1)))
                                                            (if (pair? p_1)
                                                              (let ((a_2
                                                                     (cdr
                                                                      p_1)))
                                                                (let ((app_0
                                                                       (unwrap
                                                                        '())))
                                                                  (eq?
                                                                   app_0
                                                                   (unwrap
                                                                    a_2))))
                                                              #f)))
                                                        #f)))
                                                  #f)
                                              (call-with-values
                                               (lambda ()
                                                 (let ((d_0
                                                        (cdr (unwrap v_1))))
                                                   (let ((p_0 (unwrap d_0)))
                                                     (let ((producer_0
                                                            (let ((a_0
                                                                   (car p_0)))
                                                              a_0)))
                                                       (let ((consumer_0
                                                              (let ((d_1
                                                                     (cdr
                                                                      p_0)))
                                                                (let ((a_0
                                                                       (car
                                                                        (unwrap
                                                                         d_1))))
                                                                  a_0))))
                                                         (let ((producer_1
                                                                producer_0))
                                                           (values
                                                            producer_1
                                                            consumer_0)))))))
                                               (case-lambda
                                                ((producer_0 consumer_0)
                                                 (let ((loops_1
                                                        (find-loops_0
                                                         producer_0
                                                         lifts_0
                                                         hash2610
                                                         loops_0)))
                                                   (find-loops-in-tail-called_0
                                                    find-loops_0
                                                    consumer_0
                                                    lifts_0
                                                    loop-if-tail_0
                                                    loops_1)))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  2
                                                  args))))
                                              (if (let ((p_0 (unwrap v_1)))
                                                    (if (pair? p_0) #t #f))
                                                (call-with-values
                                                 (lambda ()
                                                   (let ((p_0 (unwrap v_1)))
                                                     (let ((rator_0
                                                            (let ((a_0
                                                                   (car p_0)))
                                                              a_0)))
                                                       (let ((rands_0
                                                              (let ((d_0
                                                                     (cdr
                                                                      p_0)))
                                                                d_0)))
                                                         (let ((rator_1
                                                                rator_0))
                                                           (values
                                                            rator_1
                                                            rands_0))))))
                                                 (case-lambda
                                                  ((rator_0 rands_0)
                                                   (let ((f_0
                                                          (unwrap rator_0)))
                                                     (let ((loops_1
                                                            (let ((c2_0
                                                                   (if (symbol?
                                                                        f_0)
                                                                     (hash-ref
                                                                      loop-if-tail_0
                                                                      f_0
                                                                      #f)
                                                                     #f)))
                                                              (if c2_0
                                                                (begin
                                                                  (set-box!
                                                                   c2_0
                                                                   #t)
                                                                  loops_0)
                                                                (find-loops_0
                                                                 rator_0
                                                                 lifts_0
                                                                 hash2610
                                                                 loops_0)))))
                                                       (begin
                                                         (letrec*
                                                          ((for-loop_0
                                                            (|#%name|
                                                             for-loop
                                                             (lambda (loops_2
                                                                      lst_0)
                                                               (begin
                                                                 (if (pair?
                                                                      lst_0)
                                                                   (let ((rand_0
                                                                          (unsafe-car
                                                                           lst_0)))
                                                                     (let ((rest_0
                                                                            (unsafe-cdr
                                                                             lst_0)))
                                                                       (let ((loops_3
                                                                              (let ((loops_3
                                                                                     (find-loops_0
                                                                                      rand_0
                                                                                      lifts_0
                                                                                      hash2610
                                                                                      loops_2)))
                                                                                (values
                                                                                 loops_3))))
                                                                         (for-loop_0
                                                                          loops_3
                                                                          rest_0))))
                                                                   loops_2))))))
                                                          (for-loop_0
                                                           loops_1
                                                           rands_0))))))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    2
                                                    args))))
                                                (let ((x_0 (unwrap v_1)))
                                                  (if (symbol? x_0)
                                                    (hash-remove loops_0 x_0)
                                                    loops_0))))))))))))))))))))))))
       (if (lift-in?_0 v_0)
         (with-continuation-mark*
          authentic
          parameterization-key
          (extend-parameterization
           (continuation-mark-set-first #f parameterization-key)
           gensym-counter
           (box 0))
          (lift-in_0 find-loops_0 leave-loops-intact?_0 v_0))
         v_0)))))
(define struct:convert-mode
  (make-record-type-descriptor* 'convert-mode #f #f #f #f 4 15))
(define effect5044
  (struct-type-install-properties!
   struct:convert-mode
   'convert-mode
   4
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1 2 3)
   #f
   'convert-mode))
(define convert-mode1.1
  (|#%name|
   convert-mode
   (record-constructor
    (make-record-constructor-descriptor struct:convert-mode #f #f))))
(define convert-mode?5043
  (|#%name| convert-mode? (record-predicate struct:convert-mode)))
(define convert-mode?
  (|#%name|
   convert-mode?
   (lambda (v)
     (if (convert-mode?5043 v)
       #t
       ($value
        (if (impersonator? v) (convert-mode?5043 (impersonator-val v)) #f))))))
(define convert-mode-sizes5045
  (|#%name| convert-mode-sizes (record-accessor struct:convert-mode 0)))
(define convert-mode-sizes
  (|#%name|
   convert-mode-sizes
   (lambda (s)
     (if (convert-mode?5043 s)
       (convert-mode-sizes5045 s)
       ($value
        (impersonate-ref
         convert-mode-sizes5045
         struct:convert-mode
         0
         s
         'convert-mode
         'sizes))))))
(define convert-mode-called?5046
  (|#%name| convert-mode-called? (record-accessor struct:convert-mode 1)))
(define convert-mode-called?
  (|#%name|
   convert-mode-called?
   (lambda (s)
     (if (convert-mode?5043 s)
       (convert-mode-called?5046 s)
       ($value
        (impersonate-ref
         convert-mode-called?5046
         struct:convert-mode
         1
         s
         'convert-mode
         'called?))))))
(define convert-mode-lift?5047
  (|#%name| convert-mode-lift? (record-accessor struct:convert-mode 2)))
(define convert-mode-lift?
  (|#%name|
   convert-mode-lift?
   (lambda (s)
     (if (convert-mode?5043 s)
       (convert-mode-lift?5047 s)
       ($value
        (impersonate-ref
         convert-mode-lift?5047
         struct:convert-mode
         2
         s
         'convert-mode
         'lift?))))))
(define convert-mode-no-more-conversions?5048
  (|#%name|
   convert-mode-no-more-conversions?
   (record-accessor struct:convert-mode 3)))
(define convert-mode-no-more-conversions?
  (|#%name|
   convert-mode-no-more-conversions?
   (lambda (s)
     (if (convert-mode?5043 s)
       (convert-mode-no-more-conversions?5048 s)
       ($value
        (impersonate-ref
         convert-mode-no-more-conversions?5048
         struct:convert-mode
         3
         s
         'convert-mode
         'no-more-conversions?))))))
(define effect5049
  (begin
    (register-struct-constructor! convert-mode1.1)
    (register-struct-predicate! convert-mode?)
    (register-struct-field-accessor! convert-mode-sizes struct:convert-mode 0)
    (register-struct-field-accessor!
     convert-mode-called?
     struct:convert-mode
     1)
    (register-struct-field-accessor! convert-mode-lift? struct:convert-mode 2)
    (register-struct-field-accessor!
     convert-mode-no-more-conversions?
     struct:convert-mode
     3)
    (void)))
(define lifts-id (string->uninterned-symbol "_jits"))
(define jitify-schemified-linklet
  (letrec ((procz14
            (|#%name|
             record-size!
             (lambda (v_0 sizes_0 size_0)
               (begin (begin (hash-set! sizes_0 v_0 size_0) size_0)))))
           (procz13
            (|#%name|
             add-lift
             (lambda (e_0 lifts_0)
               (begin
                 (let ((app_0
                        (list 'unsafe-vector-ref lifts-id (car lifts_0))))
                   (values
                    app_0
                    (let ((app_1 (add1 (car lifts_0))))
                      (cons app_1 (cons e_0 (cdr lifts_0))))))))))
           (procz12
            (|#%name|
             lifts->datum
             (lambda (v_0) (begin (list->vector (reverse$1 (cdr v_0)))))))
           (procz11
            (|#%name| no-lifts? (lambda (v_0) (begin (zero? (car v_0))))))
           (procz10
            (|#%name|
             convert-mode-need-lift?
             (lambda (cm_0)
               (begin
                 (if (convert-mode? cm_0)
                   (convert-mode-lift? cm_0)
                   (eq? 'lift (cdr cm_0)))))))
           (procz9
            (|#%name|
             convert-mode-box-mutables?
             (lambda (cm_0)
               (begin
                 (if (convert-mode? cm_0)
                   (not (convert-mode-no-more-conversions? cm_0))
                   #t)))))
           (procz8
            (|#%name|
             convert-mode-called
             (lambda (cm_0)
               (begin
                 (if (convert-mode? cm_0)
                   (if (convert-mode? cm_0)
                     (let ((app_0 (convert-mode-sizes cm_0)))
                       (let ((app_1 (convert-mode-lift? cm_0)))
                         (convert-mode1.1
                          app_0
                          #t
                          app_1
                          (convert-mode-no-more-conversions? cm_0))))
                     (raise-argument-error 'struct-copy "convert-mode?" cm_0))
                   (if (eq? 'no-lift (cdr cm_0))
                     '(called . no-lift)
                     '(called . lift)))))))
           (procz7
            (|#%name|
             convert-mode-non-tail
             (lambda (cm_0)
               (begin
                 (if (convert-mode? cm_0)
                   (if (convert-mode? cm_0)
                     (let ((app_0 (convert-mode-sizes cm_0)))
                       (let ((app_1 (convert-mode-lift? cm_0)))
                         (convert-mode1.1
                          app_0
                          #f
                          app_1
                          (convert-mode-no-more-conversions? cm_0))))
                     (raise-argument-error 'struct-copy "convert-mode?" cm_0))
                   (if (eq? 'no-lift (cdr cm_0))
                     '(not-called . no-lift)
                     '(not-called . lift)))))))
           (procz6
            (|#%name|
             body->expr
             (lambda (body_0)
               (begin
                 (if (if (pair? (unwrap body_0))
                       (let ((v_0 (wrap-cdr body_0))) (null? (unwrap v_0)))
                       #f)
                   (wrap-car body_0)
                   (list* 'begin body_0))))))
           (procz5
            (|#%name|
             deactivate-self
             (lambda (env_0 name_0)
               (begin
                 (if name_0
                   (let ((u_0 (unwrap name_0)))
                     (let ((v_0 (hash-ref env_0 u_0 #f)))
                       (let ((hd_0
                              (let ((p_0 (unwrap v_0)))
                                (if (pair? p_0) (unwrap (car p_0)) #f))))
                         (if (if (eq? 'self hd_0)
                               (let ((a_0 (cdr (unwrap v_0))))
                                 (let ((p_0 (unwrap a_0)))
                                   (if (pair? p_0)
                                     (let ((a_1 (cdr p_0)))
                                       (let ((p_1 (unwrap a_1)))
                                         (if (pair? p_1)
                                           (let ((a_2 (cdr p_1)))
                                             (let ((app_0 (unwrap '())))
                                               (eq? app_0 (unwrap a_2))))
                                           #f)))
                                     #f)))
                               #f)
                           (let ((m_0
                                  (let ((d_0 (cdr (unwrap v_0))))
                                    (let ((a_0 (car (unwrap d_0)))) a_0))))
                             (hash-set env_0 u_0 m_0))
                           env_0))))
                   env_0)))))
           (procz4
            (|#%name|
             add-self
             (lambda (env_0 mutables_0 name_0)
               (begin
                 (let ((u_0 (unwrap name_0)))
                   (if (hash-ref mutables_0 u_0 #f)
                     env_0
                     (hash-set
                      env_0
                      u_0
                      (list 'self (hash-ref env_0 u_0 kw2846)))))))))
           (procz3 (lambda (var_0) #t))
           (procz2
            (|#%name|
             lambda?
             (lambda (v_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap v_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'lambda hd_0) #t #f)
                     #t
                     (if (if (eq? 'case-lambda hd_0) #t #f) #t #f)))))))
           (procz1
            (|#%name|
             id<?
             (lambda (a_0 b_0)
               (begin
                 (let ((app_0 (unwrap a_0))) (symbol<? app_0 (unwrap b_0)))))))
           (add-one_0
            (|#%name|
             add-one
             (lambda (env4_0 replace?3_0 id_0)
               (begin
                 (let ((u-id_0 (unwrap id_0)))
                   (if (if replace?3_0
                         replace?3_0
                         (not (hash-ref env4_0 u-id_0 #f)))
                     (hash-set env4_0 u-id_0 kw2846)
                     env4_0))))))
           (add-one_1
            (|#%name|
             add-one
             (lambda (convert-mode-box-mutables?_0
                      convert-mode_0
                      env_0
                      mutables_0
                      id_0)
               (begin
                 (let ((u_0 (unwrap id_0)))
                   (let ((val_0
                          (if (if (convert-mode-box-mutables?_0 convert-mode_0)
                                (hash-ref mutables_0 u_0 #f)
                                #f)
                            (list 'unsafe-unbox* id_0)
                            kw2846)))
                     (hash-set env_0 u_0 val_0)))))))
           (add-one_2
            (|#%name|
             add-one
             (lambda (convert-mode-box-mutables?_0
                      convert-mode_0
                      env_0
                      mutables_0
                      var-rec?_0
                      id_0)
               (begin
                 (let ((var_0 (unwrap id_0)))
                   (if (not
                        (let ((or-part_0 (|#%app| var-rec?_0 var_0)))
                          (if or-part_0
                            or-part_0
                            (if (convert-mode-box-mutables?_0 convert-mode_0)
                              (hash-ref mutables_0 var_0 #f)
                              #f))))
                     (hash-set env_0 var_0 kw2846)
                     (hash-set env_0 var_0 (list 'unsafe-unbox* id_0))))))))
           (extract-id_0
            (|#%name|
             extract-id
             (lambda (m_0 id_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap m_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'variable-ref hd_0)
                         (let ((a_0 (cdr (unwrap m_0))))
                           (let ((p_0 (unwrap a_0)))
                             (if (pair? p_0)
                               (let ((a_1 (cdr p_0)))
                                 (let ((app_0 (unwrap '())))
                                   (eq? app_0 (unwrap a_1))))
                               #f)))
                         #f)
                     (let ((var_0
                            (let ((d_0 (cdr (unwrap m_0))))
                              (let ((a_0 (car (unwrap d_0)))) a_0))))
                       var_0)
                     (if (if (eq? 'unsafe-unbox* hd_0)
                           (let ((a_0 (cdr (unwrap m_0))))
                             (let ((p_0 (unwrap a_0)))
                               (if (pair? p_0)
                                 (let ((a_1 (cdr p_0)))
                                   (let ((app_0 (unwrap '())))
                                     (eq? app_0 (unwrap a_1))))
                                 #f)))
                           #f)
                       (let ((var_0
                              (let ((d_0 (cdr (unwrap m_0))))
                                (let ((a_0 (car (unwrap d_0)))) a_0))))
                         var_0)
                       (if (if (eq? 'self hd_0)
                             (let ((a_0 (cdr (unwrap m_0))))
                               (let ((p_0 (unwrap a_0)))
                                 (if (pair? p_0)
                                   (let ((a_1 (cdr p_0)))
                                     (let ((p_1 (unwrap a_1)))
                                       (if (pair? p_1)
                                         (let ((a_2 (cdr p_1)))
                                           (let ((app_0 (unwrap '())))
                                             (eq? app_0 (unwrap a_2))))
                                         #f)))
                                   #f)))
                             #f)
                         (call-with-values
                          (lambda ()
                            (let ((d_0 (cdr (unwrap m_0))))
                              (let ((p_0 (unwrap d_0)))
                                (let ((m_1 (let ((a_0 (car p_0))) a_0)))
                                  (let ((orig-id_0
                                         (let ((d_1 (cdr p_0)))
                                           (let ((a_0 (car (unwrap d_1))))
                                             a_0))))
                                    (let ((m_2 m_1))
                                      (values m_2 orig-id_0)))))))
                          (case-lambda
                           ((m_1 orig-id_0) orig-id_0)
                           (args (raise-binding-result-arity-error 2 args))))
                         (if (if (eq? 'self hd_0)
                               (let ((a_0 (cdr (unwrap m_0))))
                                 (let ((p_0 (unwrap a_0)))
                                   (if (pair? p_0)
                                     (let ((a_1 (cdr p_0)))
                                       (let ((app_0 (unwrap '())))
                                         (eq? app_0 (unwrap a_1))))
                                     #f)))
                               #f)
                           (let ((m_1
                                  (let ((d_0 (cdr (unwrap m_0))))
                                    (let ((a_0 (car (unwrap d_0)))) a_0))))
                             (extract-id_0 m_1 id_0))
                           id_0)))))))))
           (genself_0
            (|#%name|
             genself
             (lambda () (begin (deterministic-gensym "self")))))
           (loop_0
            (|#%name|
             loop
             (lambda (add-bindings_0
                      jitify-schemified-body_0
                      plain-add-args_1
                      v_0
                      env_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap v_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'lambda hd_0)
                         (let ((a_0 (cdr (unwrap v_0))))
                           (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
                         #f)
                     (call-with-values
                      (lambda ()
                        (let ((d_0 (cdr (unwrap v_0))))
                          (let ((p_0 (unwrap d_0)))
                            (let ((args_0 (let ((a_0 (car p_0))) a_0)))
                              (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                                (let ((args_1 args_0))
                                  (values args_1 body_0)))))))
                      (case-lambda
                       ((args_0 body_0)
                        (let ((new-body_0
                               (jitify-schemified-body_0
                                body_0
                                (plain-add-args_1 env_0 args_0))))
                          (reannotate v_0 (list* 'lambda args_0 new-body_0))))
                       (args (raise-binding-result-arity-error 2 args))))
                     (if (if (eq? 'let* hd_0)
                           (let ((a_0 (cdr (unwrap v_0))))
                             (let ((p_0 (unwrap a_0)))
                               (if (pair? p_0)
                                 (let ((a_1 (cdr p_0)))
                                   (let ((p_1 (unwrap a_1)))
                                     (if (pair? p_1)
                                       (let ((a_2 (cdr p_1)))
                                         (let ((app_0 (unwrap '())))
                                           (eq? app_0 (unwrap a_2))))
                                       #f)))
                                 #f)))
                           #f)
                       (call-with-values
                        (lambda ()
                          (let ((d_0 (cdr (unwrap v_0))))
                            (let ((p_0 (unwrap d_0)))
                              (let ((bindings_0 (let ((a_0 (car p_0))) a_0)))
                                (let ((body_0
                                       (let ((d_1 (cdr p_0)))
                                         (let ((a_0 (car (unwrap d_1))))
                                           a_0))))
                                  (let ((bindings_1 bindings_0))
                                    (values bindings_1 body_0)))))))
                        (case-lambda
                         ((bindings_0 body_0)
                          (let ((new-body_0
                                 (loop_0
                                  add-bindings_0
                                  jitify-schemified-body_0
                                  plain-add-args_1
                                  body_0
                                  (add-bindings_0 env_0 bindings_0))))
                            (reannotate
                             v_0
                             (list 'let* bindings_0 new-body_0))))
                         (args (raise-binding-result-arity-error 2 args))))
                       (error 'match "failed ~e" v_0))))))))
           (loop_1
            (|#%name|
             loop
             (lambda (plain-add-args_1 v_0 env_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap v_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'variable-set! hd_0)
                         (let ((a_0 (cdr (unwrap v_0))))
                           (let ((p_0 (unwrap a_0)))
                             (if (pair? p_0)
                               (let ((a_1 (cdr p_0)))
                                 (let ((p_1 (unwrap a_1)))
                                   (if (pair? p_1) #t #f)))
                               #f)))
                         #f)
                     (call-with-values
                      (lambda ()
                        (let ((d_0 (cdr (unwrap v_0))))
                          (let ((p_0 (unwrap d_0)))
                            (let ((var-id_0 (let ((a_0 (car p_0))) a_0)))
                              (let ((id_0
                                     (let ((d_1 (cdr p_0)))
                                       (let ((a_0 (car (unwrap d_1)))) a_0))))
                                (let ((var-id_1 var-id_0))
                                  (values var-id_1 id_0)))))))
                      (case-lambda
                       ((var-id_0 id_0)
                        (let ((app_0 (unwrap id_0)))
                          (hash-set
                           env_0
                           app_0
                           (list 'variable-ref (unwrap var-id_0)))))
                       (args (raise-binding-result-arity-error 2 args))))
                     (if (if (eq? 'variable-set!/define hd_0)
                           (let ((a_0 (cdr (unwrap v_0))))
                             (let ((p_0 (unwrap a_0)))
                               (if (pair? p_0)
                                 (let ((a_1 (cdr p_0)))
                                   (let ((p_1 (unwrap a_1)))
                                     (if (pair? p_1) #t #f)))
                                 #f)))
                           #f)
                       (call-with-values
                        (lambda ()
                          (let ((d_0 (cdr (unwrap v_0))))
                            (let ((p_0 (unwrap d_0)))
                              (let ((var-id_0 (let ((a_0 (car p_0))) a_0)))
                                (let ((id_0
                                       (let ((d_1 (cdr p_0)))
                                         (let ((a_0 (car (unwrap d_1))))
                                           a_0))))
                                  (let ((var-id_1 var-id_0))
                                    (values var-id_1 id_0)))))))
                        (case-lambda
                         ((var-id_0 id_0)
                          (let ((app_0 (unwrap id_0)))
                            (hash-set
                             env_0
                             app_0
                             (list 'variable-ref (unwrap var-id_0)))))
                         (args (raise-binding-result-arity-error 2 args))))
                       (if (if (eq? 'call-with-module-prompt hd_0)
                             (let ((a_0 (cdr (unwrap v_0))))
                               (let ((p_0 (unwrap a_0)))
                                 (if (pair? p_0)
                                   (let ((a_1 (cdr p_0)))
                                     (let ((p_1 (unwrap a_1)))
                                       (if (pair? p_1)
                                         (if (let ((a_2 (car p_1)))
                                               (let ((p_2 (unwrap a_2)))
                                                 (if (pair? p_2)
                                                   (if (let ((a_3 (car p_2)))
                                                         (let ((app_0
                                                                (unwrap
                                                                 'quote)))
                                                           (eq?
                                                            app_0
                                                            (unwrap a_3))))
                                                     (let ((a_3 (cdr p_2)))
                                                       (let ((p_3
                                                              (unwrap a_3)))
                                                         (if (pair? p_3)
                                                           (let ((a_4
                                                                  (cdr p_3)))
                                                             (let ((app_0
                                                                    (unwrap
                                                                     '())))
                                                               (eq?
                                                                app_0
                                                                (unwrap a_4))))
                                                           #f)))
                                                     #f)
                                                   #f)))
                                           (let ((a_2 (cdr p_1)))
                                             (let ((p_2 (unwrap a_2)))
                                               (if (pair? p_2)
                                                 (let ((a_3 (cdr p_2)))
                                                   (wrap-list? a_3))
                                                 #f)))
                                           #f)
                                         #f)))
                                   #f)))
                             #f)
                         (call-with-values
                          (lambda ()
                            (let ((d_0 (cdr (unwrap v_0))))
                              (let ((d_1 (cdr (unwrap d_0))))
                                (let ((p_0 (unwrap d_1)))
                                  (let ((ids_0
                                         (let ((a_0 (car p_0)))
                                           (let ((d_2 (cdr (unwrap a_0))))
                                             (let ((a_1 (car (unwrap d_2))))
                                               a_1)))))
                                    (let ((var-ids_0
                                           (let ((d_2 (cdr p_0)))
                                             (let ((d_3 (cdr (unwrap d_2))))
                                               (unwrap-list d_3)))))
                                      (let ((ids_1 ids_0))
                                        (values ids_1 var-ids_0))))))))
                          (case-lambda
                           ((ids_0 var-ids_0)
                            (begin
                              (letrec*
                               ((for-loop_0
                                 (|#%name|
                                  for-loop
                                  (lambda (env_1 lst_0 lst_1)
                                    (begin
                                      (if (if (pair? lst_0) (pair? lst_1) #f)
                                        (let ((id_0 (unsafe-car lst_0)))
                                          (let ((rest_0 (unsafe-cdr lst_0)))
                                            (let ((var-id_0
                                                   (unsafe-car lst_1)))
                                              (let ((rest_1
                                                     (unsafe-cdr lst_1)))
                                                (let ((env_2
                                                       (let ((env_2
                                                              (let ((app_0
                                                                     (unwrap
                                                                      id_0)))
                                                                (hash-set
                                                                 env_1
                                                                 app_0
                                                                 (list
                                                                  'variable-ref
                                                                  (unwrap
                                                                   var-id_0))))))
                                                         (values env_2))))
                                                  (for-loop_0
                                                   env_2
                                                   rest_0
                                                   rest_1))))))
                                        env_1))))))
                               (for-loop_0 env_0 ids_0 var-ids_0))))
                           (args (raise-binding-result-arity-error 2 args))))
                         (if (if (eq? 'define hd_0)
                               (let ((a_0 (cdr (unwrap v_0))))
                                 (let ((p_0 (unwrap a_0)))
                                   (if (pair? p_0)
                                     (let ((a_1 (cdr p_0)))
                                       (let ((p_1 (unwrap a_1)))
                                         (if (pair? p_1)
                                           (let ((a_2 (cdr p_1)))
                                             (let ((app_0 (unwrap '())))
                                               (eq? app_0 (unwrap a_2))))
                                           #f)))
                                     #f)))
                               #f)
                           (call-with-values
                            (lambda ()
                              (let ((d_0 (cdr (unwrap v_0))))
                                (let ((p_0 (unwrap d_0)))
                                  (let ((id_0 (let ((a_0 (car p_0))) a_0)))
                                    (let ((rhs_0
                                           (let ((d_1 (cdr p_0)))
                                             (let ((a_0 (car (unwrap d_1))))
                                               a_0))))
                                      (let ((id_1 id_0))
                                        (values id_1 rhs_0)))))))
                            (case-lambda
                             ((id_0 rhs_0) (plain-add-args_1 env_0 id_0 #f))
                             (args (raise-binding-result-arity-error 2 args))))
                           (if (if (eq? 'define-values hd_0)
                                 (let ((a_0 (cdr (unwrap v_0))))
                                   (let ((p_0 (unwrap a_0)))
                                     (if (pair? p_0)
                                       (let ((a_1 (cdr p_0)))
                                         (let ((p_1 (unwrap a_1)))
                                           (if (pair? p_1)
                                             (let ((a_2 (cdr p_1)))
                                               (let ((app_0 (unwrap '())))
                                                 (eq? app_0 (unwrap a_2))))
                                             #f)))
                                       #f)))
                                 #f)
                             (call-with-values
                              (lambda ()
                                (let ((d_0 (cdr (unwrap v_0))))
                                  (let ((p_0 (unwrap d_0)))
                                    (let ((ids_0 (let ((a_0 (car p_0))) a_0)))
                                      (let ((rhs_0
                                             (let ((d_1 (cdr p_0)))
                                               (let ((a_0 (car (unwrap d_1))))
                                                 a_0))))
                                        (let ((ids_1 ids_0))
                                          (values ids_1 rhs_0)))))))
                              (case-lambda
                               ((ids_0 rhs_0)
                                (plain-add-args_1 env_0 ids_0 #f))
                               (args
                                (raise-binding-result-arity-error 2 args))))
                             (if (if (eq? 'begin hd_0) #t #f)
                               (let ((vs_0
                                      (let ((d_0 (cdr (unwrap v_0)))) d_0)))
                                 (begin
                                   (letrec*
                                    ((for-loop_0
                                      (|#%name|
                                       for-loop
                                       (lambda (env_1 lst_0)
                                         (begin
                                           (if (not (null? (unwrap lst_0)))
                                             (let ((v_1
                                                    (if (pair? (unwrap lst_0))
                                                      (wrap-car lst_0)
                                                      lst_0)))
                                               (let ((rest_0
                                                      (if (pair?
                                                           (unwrap lst_0))
                                                        (wrap-cdr lst_0)
                                                        null)))
                                                 (let ((v_2 v_1))
                                                   (let ((env_2
                                                          (let ((env_2
                                                                 (loop_1
                                                                  plain-add-args_1
                                                                  v_2
                                                                  env_1)))
                                                            (values env_2))))
                                                     (for-loop_0
                                                      env_2
                                                      rest_0)))))
                                             env_1))))))
                                    (for-loop_0 env_0 vs_0))))
                               env_0)))))))))))
           (loop_2
            (|#%name|
             loop
             (lambda (add-self_0 jitify-top-expr_0 top-env_0 body_0)
               (begin
                 (reverse$1
                  (begin
                    (letrec*
                     ((for-loop_0
                       (|#%name|
                        for-loop
                        (lambda (fold-var_0 lst_0)
                          (begin
                            (if (pair? lst_0)
                              (let ((v_0 (unsafe-car lst_0)))
                                (let ((rest_0 (unsafe-cdr lst_0)))
                                  (let ((fold-var_1
                                         (let ((fold-var_1
                                                (cons
                                                 (let ((hd_0
                                                        (let ((p_0
                                                               (unwrap v_0)))
                                                          (if (pair? p_0)
                                                            (unwrap (car p_0))
                                                            #f))))
                                                   (if (if (eq?
                                                            'variable-set!/define
                                                            hd_0)
                                                         (let ((a_0
                                                                (cdr
                                                                 (unwrap
                                                                  v_0))))
                                                           (let ((p_0
                                                                  (unwrap
                                                                   a_0)))
                                                             (if (pair? p_0)
                                                               (let ((a_1
                                                                      (cdr
                                                                       p_0)))
                                                                 (let ((p_1
                                                                        (unwrap
                                                                         a_1)))
                                                                   (if (pair?
                                                                        p_1)
                                                                     (let ((a_2
                                                                            (cdr
                                                                             p_1)))
                                                                       (let ((p_2
                                                                              (unwrap
                                                                               a_2)))
                                                                         (if (pair?
                                                                              p_2)
                                                                           (if (let ((a_3
                                                                                      (car
                                                                                       p_2)))
                                                                                 (let ((p_3
                                                                                        (unwrap
                                                                                         a_3)))
                                                                                   (if (pair?
                                                                                        p_3)
                                                                                     (if (let ((a_4
                                                                                                (car
                                                                                                 p_3)))
                                                                                           (let ((app_0
                                                                                                  (unwrap
                                                                                                   'quote)))
                                                                                             (eq?
                                                                                              app_0
                                                                                              (unwrap
                                                                                               a_4))))
                                                                                       (let ((a_4
                                                                                              (cdr
                                                                                               p_3)))
                                                                                         (let ((p_4
                                                                                                (unwrap
                                                                                                 a_4)))
                                                                                           (if (pair?
                                                                                                p_4)
                                                                                             (let ((a_5
                                                                                                    (cdr
                                                                                                     p_4)))
                                                                                               (let ((app_0
                                                                                                      (unwrap
                                                                                                       '())))
                                                                                                 (eq?
                                                                                                  app_0
                                                                                                  (unwrap
                                                                                                   a_5))))
                                                                                             #f)))
                                                                                       #f)
                                                                                     #f)))
                                                                             (let ((a_3
                                                                                    (cdr
                                                                                     p_2)))
                                                                               (let ((app_0
                                                                                      (unwrap
                                                                                       '())))
                                                                                 (eq?
                                                                                  app_0
                                                                                  (unwrap
                                                                                   a_3))))
                                                                             #f)
                                                                           #f)))
                                                                     #f)))
                                                               #f)))
                                                         #f)
                                                     (call-with-values
                                                      (lambda ()
                                                        (let ((d_0
                                                               (cdr
                                                                (unwrap v_0))))
                                                          (let ((p_0
                                                                 (unwrap d_0)))
                                                            (let ((var-id_0
                                                                   (let ((a_0
                                                                          (car
                                                                           p_0)))
                                                                     a_0)))
                                                              (call-with-values
                                                               (lambda ()
                                                                 (let ((d_1
                                                                        (cdr
                                                                         p_0)))
                                                                   (let ((p_1
                                                                          (unwrap
                                                                           d_1)))
                                                                     (let ((id_0
                                                                            (let ((a_0
                                                                                   (car
                                                                                    p_1)))
                                                                              a_0)))
                                                                       (let ((constance_0
                                                                              (let ((d_2
                                                                                     (cdr
                                                                                      p_1)))
                                                                                (let ((a_0
                                                                                       (car
                                                                                        (unwrap
                                                                                         d_2))))
                                                                                  (let ((d_3
                                                                                         (cdr
                                                                                          (unwrap
                                                                                           a_0))))
                                                                                    (let ((a_1
                                                                                           (car
                                                                                            (unwrap
                                                                                             d_3))))
                                                                                      a_1))))))
                                                                         (let ((id_1
                                                                                id_0))
                                                                           (values
                                                                            id_1
                                                                            constance_0)))))))
                                                               (case-lambda
                                                                ((id_0
                                                                  constance_0)
                                                                 (let ((var-id_1
                                                                        var-id_0))
                                                                   (values
                                                                    var-id_1
                                                                    id_0
                                                                    constance_0)))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args))))))))
                                                      (case-lambda
                                                       ((var-id_0
                                                         id_0
                                                         constance_0)
                                                        (begin
                                                          (if constance_0
                                                            (unsafe-set-box*!
                                                             top-env_0
                                                             (let ((app_0
                                                                    (unsafe-unbox*
                                                                     top-env_0)))
                                                               (hash-set
                                                                app_0
                                                                (unwrap id_0)
                                                                kw2846)))
                                                            (void))
                                                          v_0))
                                                       (args
                                                        (raise-binding-result-arity-error
                                                         3
                                                         args))))
                                                     (if (if (eq? 'define hd_0)
                                                           (let ((a_0
                                                                  (cdr
                                                                   (unwrap
                                                                    v_0))))
                                                             (let ((p_0
                                                                    (unwrap
                                                                     a_0)))
                                                               (if (pair? p_0)
                                                                 (let ((a_1
                                                                        (cdr
                                                                         p_0)))
                                                                   (let ((p_1
                                                                          (unwrap
                                                                           a_1)))
                                                                     (if (pair?
                                                                          p_1)
                                                                       (let ((a_2
                                                                              (cdr
                                                                               p_1)))
                                                                         (let ((app_0
                                                                                (unwrap
                                                                                 '())))
                                                                           (eq?
                                                                            app_0
                                                                            (unwrap
                                                                             a_2))))
                                                                       #f)))
                                                                 #f)))
                                                           #f)
                                                       (call-with-values
                                                        (lambda ()
                                                          (let ((d_0
                                                                 (cdr
                                                                  (unwrap
                                                                   v_0))))
                                                            (let ((p_0
                                                                   (unwrap
                                                                    d_0)))
                                                              (let ((id_0
                                                                     (let ((a_0
                                                                            (car
                                                                             p_0)))
                                                                       a_0)))
                                                                (let ((rhs_0
                                                                       (let ((d_1
                                                                              (cdr
                                                                               p_0)))
                                                                         (let ((a_0
                                                                                (car
                                                                                 (unwrap
                                                                                  d_1))))
                                                                           a_0))))
                                                                  (let ((id_1
                                                                         id_0))
                                                                    (values
                                                                     id_1
                                                                     rhs_0)))))))
                                                        (case-lambda
                                                         ((id_0 rhs_0)
                                                          (let ((self-env_0
                                                                 (add-self_0
                                                                  (unsafe-unbox*
                                                                   top-env_0)
                                                                  hash2610
                                                                  id_0)))
                                                            (reannotate
                                                             v_0
                                                             (list
                                                              'define
                                                              id_0
                                                              (jitify-top-expr_0
                                                               rhs_0
                                                               self-env_0
                                                               id_0)))))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args))))
                                                       (if (if (eq?
                                                                'define-values
                                                                hd_0)
                                                             (let ((a_0
                                                                    (cdr
                                                                     (unwrap
                                                                      v_0))))
                                                               (let ((p_0
                                                                      (unwrap
                                                                       a_0)))
                                                                 (if (pair?
                                                                      p_0)
                                                                   (let ((a_1
                                                                          (cdr
                                                                           p_0)))
                                                                     (let ((p_1
                                                                            (unwrap
                                                                             a_1)))
                                                                       (if (pair?
                                                                            p_1)
                                                                         (let ((a_2
                                                                                (cdr
                                                                                 p_1)))
                                                                           (let ((app_0
                                                                                  (unwrap
                                                                                   '())))
                                                                             (eq?
                                                                              app_0
                                                                              (unwrap
                                                                               a_2))))
                                                                         #f)))
                                                                   #f)))
                                                             #f)
                                                         (call-with-values
                                                          (lambda ()
                                                            (let ((d_0
                                                                   (cdr
                                                                    (unwrap
                                                                     v_0))))
                                                              (let ((p_0
                                                                     (unwrap
                                                                      d_0)))
                                                                (let ((ids_0
                                                                       (let ((a_0
                                                                              (car
                                                                               p_0)))
                                                                         a_0)))
                                                                  (let ((rhs_0
                                                                         (let ((d_1
                                                                                (cdr
                                                                                 p_0)))
                                                                           (let ((a_0
                                                                                  (car
                                                                                   (unwrap
                                                                                    d_1))))
                                                                             a_0))))
                                                                    (let ((ids_1
                                                                           ids_0))
                                                                      (values
                                                                       ids_1
                                                                       rhs_0)))))))
                                                          (case-lambda
                                                           ((ids_0 rhs_0)
                                                            (reannotate
                                                             v_0
                                                             (list
                                                              'define-values
                                                              ids_0
                                                              (jitify-top-expr_0
                                                               rhs_0
                                                               (unsafe-unbox*
                                                                top-env_0)
                                                               #f))))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             2
                                                             args))))
                                                         (if (if (eq?
                                                                  'begin
                                                                  hd_0)
                                                               #t
                                                               #f)
                                                           (let ((vs_0
                                                                  (let ((d_0
                                                                         (cdr
                                                                          (unwrap
                                                                           v_0))))
                                                                    d_0)))
                                                             (reannotate
                                                              v_0
                                                              (list*
                                                               'begin
                                                               (loop_2
                                                                add-self_0
                                                                jitify-top-expr_0
                                                                top-env_0
                                                                vs_0))))
                                                           (jitify-top-expr_0
                                                            v_0
                                                            (unsafe-unbox*
                                                             top-env_0)
                                                            #f))))))
                                                 fold-var_0)))
                                           (values fold-var_1))))
                                    (for-loop_0 fold-var_1 rest_0))))
                              fold-var_0))))))
                     (for-loop_0 null body_0))))))))
           (loop_3
            (|#%name|
             loop
             (lambda (convert-mode-non-tail_0
                      convert-mode_0
                      env_0
                      in-name_0
                      jitify-expr_0
                      mutables_0
                      name_0
                      vs_0
                      free_0
                      lifts_0)
               (begin
                 (if (null? (unwrap vs_0))
                   (values null free_0 lifts_0)
                   (if (let ((v_0 (wrap-cdr vs_0))) (null? (unwrap v_0)))
                     (call-with-values
                      (lambda ()
                        (jitify-expr_0
                         (wrap-car vs_0)
                         env_0
                         mutables_0
                         free_0
                         lifts_0
                         convert-mode_0
                         name_0
                         in-name_0))
                      (case-lambda
                       ((new-v_0 new-free_0 new-lifts_0)
                        (values (list new-v_0) new-free_0 new-lifts_0))
                       (args (raise-binding-result-arity-error 3 args))))
                     (call-with-values
                      (lambda ()
                        (let ((app_0 (wrap-car vs_0)))
                          (jitify-expr_0
                           app_0
                           env_0
                           mutables_0
                           free_0
                           lifts_0
                           (convert-mode-non-tail_0 convert-mode_0)
                           #f
                           in-name_0)))
                      (case-lambda
                       ((new-v_0 new-free_0 new-lifts_0)
                        (call-with-values
                         (lambda ()
                           (loop_3
                            convert-mode-non-tail_0
                            convert-mode_0
                            env_0
                            in-name_0
                            jitify-expr_0
                            mutables_0
                            name_0
                            (wrap-cdr vs_0)
                            new-free_0
                            new-lifts_0))
                         (case-lambda
                          ((new-rest_0 newer-free_0 newer-lifts_0)
                           (values
                            (cons new-v_0 new-rest_0)
                            newer-free_0
                            newer-lifts_0))
                          (args (raise-binding-result-arity-error 3 args)))))
                       (args (raise-binding-result-arity-error 3 args))))))))))
           (loop_4
            (|#%name|
             loop
             (lambda (mutables_0 args_0)
               (begin
                 (if (null? (unwrap args_0))
                   null
                   (if (pair? (unwrap args_0))
                     (let ((id_0 (wrap-car args_0)))
                       (let ((var_0 (unwrap id_0)))
                         (let ((rest_0 (loop_4 mutables_0 (wrap-cdr args_0))))
                           (if (hash-ref mutables_0 var_0 #f)
                             (cons (list id_0 (list 'box id_0)) rest_0)
                             rest_0))))
                     (loop_4 mutables_0 (list args_0))))))))
           (plain-add-args_0
            (|#%name|
             plain-add-args
             (lambda (plain-add-args_1 env4_0 args5_0 replace?3_0)
               (begin
                 (if (let ((p_0 (unwrap args5_0))) (if (pair? p_0) #t #f))
                   (call-with-values
                    (lambda ()
                      (let ((p_0 (unwrap args5_0)))
                        (let ((id_0 (let ((a_0 (car p_0))) a_0)))
                          (let ((args_0 (let ((d_0 (cdr p_0))) d_0)))
                            (let ((id_1 id_0)) (values id_1 args_0))))))
                    (case-lambda
                     ((id_0 args_0)
                      (plain-add-args_1
                       (add-one_0 env4_0 replace?3_0 id_0)
                       args_0
                       replace?3_0))
                     (args (raise-binding-result-arity-error 2 args))))
                   (if (let ((app_0 (unwrap '())))
                         (eq? app_0 (unwrap args5_0)))
                     env4_0
                     (add-one_0 env4_0 replace?3_0 args5_0))))))))
    (lambda (v_0
             need-extract?_0
             need-lift?_0
             convert-size-threshold_0
             extractable-annotation_0)
      (letrec*
       ((make-jit-on-call_0
         (|#%name|
          make-jit-on-call
          (lambda (free-vars_0
                   argss_0
                   v_1
                   name_0
                   env_0
                   convert-mode_0
                   body-lifts_0
                   lifts_0)
            (begin
              (let ((ids_0
                     (reverse$1
                      (begin
                        (letrec*
                         ((for-loop_0
                           (|#%name|
                            for-loop
                            (lambda (fold-var_0 i_0)
                              (begin
                                (if i_0
                                  (let ((id_0
                                         (hash-iterate-key free-vars_0 i_0)))
                                    (let ((fold-var_1 (cons id_0 fold-var_0)))
                                      (let ((fold-var_2 (values fold-var_1)))
                                        (for-loop_0
                                         fold-var_2
                                         (hash-iterate-next
                                          free-vars_0
                                          i_0)))))
                                  fold-var_0))))))
                         (for-loop_0
                          null
                          (hash-iterate-first free-vars_0)))))))
                (let ((id<?_0 procz1))
                  (let ((captures_0
                         (let ((temp6_0
                                (hash-keys
                                 (begin
                                   (letrec*
                                    ((for-loop_0
                                      (|#%name|
                                       for-loop
                                       (lambda (table_0 lst_0)
                                         (begin
                                           (if (pair? lst_0)
                                             (let ((id_0 (unsafe-car lst_0)))
                                               (let ((rest_0
                                                      (unsafe-cdr lst_0)))
                                                 (let ((table_1
                                                        (let ((table_1
                                                               (call-with-values
                                                                (lambda ()
                                                                  (values
                                                                   (extract-id_0
                                                                    (hash-ref
                                                                     env_0
                                                                     id_0)
                                                                    id_0)
                                                                   #t))
                                                                (case-lambda
                                                                 ((key_0 val_0)
                                                                  (hash-set
                                                                   table_0
                                                                   key_0
                                                                   val_0))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   2
                                                                   args))))))
                                                          (values table_1))))
                                                   (for-loop_0
                                                    table_1
                                                    rest_0))))
                                             table_0))))))
                                    (for-loop_0 hash2725 ids_0))))))
                           (sort.1 #f #f temp6_0 id<?_0))))
                    (let ((jitted-proc_0
                           (let ((or-part_0
                                  (let ((v_2
                                         (if name_0
                                           (if (hash-ref
                                                free-vars_0
                                                (unwrap name_0)
                                                #f)
                                             (hash-ref
                                              env_0
                                              (unwrap name_0)
                                              #f)
                                             #f)
                                           #f)))
                                    (let ((hd_0
                                           (let ((p_0 (unwrap v_2)))
                                             (if (pair? p_0)
                                               (unwrap (car p_0))
                                               #f))))
                                      (if (if (eq? 'self hd_0)
                                            (let ((a_0 (cdr (unwrap v_2))))
                                              (let ((p_0 (unwrap a_0)))
                                                (if (pair? p_0)
                                                  (let ((a_1 (cdr p_0)))
                                                    (let ((p_1 (unwrap a_1)))
                                                      (if (pair? p_1)
                                                        (let ((a_2 (cdr p_1)))
                                                          (let ((app_0
                                                                 (unwrap '())))
                                                            (eq?
                                                             app_0
                                                             (unwrap a_2))))
                                                        #f)))
                                                  #f)))
                                            #f)
                                        (call-with-values
                                         (lambda ()
                                           (let ((d_0 (cdr (unwrap v_2))))
                                             (let ((p_0 (unwrap d_0)))
                                               (let ((m_0
                                                      (let ((a_0 (car p_0)))
                                                        a_0)))
                                                 (let ((orig-name_0
                                                        (let ((d_1 (cdr p_0)))
                                                          (let ((a_0
                                                                 (car
                                                                  (unwrap
                                                                   d_1))))
                                                            a_0))))
                                                   (let ((m_1 m_0))
                                                     (values
                                                      m_1
                                                      orig-name_0)))))))
                                         (case-lambda
                                          ((m_0 orig-name_0)
                                           (if (eq? orig-name_0 name_0)
                                             (let ((self-id_0
                                                    (extract-id_0 m_0 name_0)))
                                               (list
                                                'let
                                                (list
                                                 (list self-id_0 orig-name_0))
                                                (list
                                                 'letrec
                                                 (list (list name_0 v_1))
                                                 name_0)))
                                             #f))
                                          (args
                                           (raise-binding-result-arity-error
                                            2
                                            args))))
                                        #f)))))
                             (if or-part_0
                               or-part_0
                               (let ((or-part_1
                                      (let ((v_2
                                             (if name_0
                                               (hash-ref
                                                env_0
                                                (unwrap name_0)
                                                #f)
                                               #f)))
                                        (let ((hd_0
                                               (let ((p_0 (unwrap v_2)))
                                                 (if (pair? p_0)
                                                   (unwrap (car p_0))
                                                   #f))))
                                          (if (if (eq? 'self hd_0) #t #f)
                                            (list
                                             'letrec
                                             (list (list name_0 v_1))
                                             name_0)
                                            #f)))))
                                 (if or-part_1
                                   or-part_1
                                   (if name_0
                                     (list
                                      'let
                                      (list (list name_0 v_1))
                                      name_0)
                                     v_1)))))))
                      (let ((arity-mask_0 (argss->arity-mask_0 argss_0)))
                        (let ((i-name_0
                               (let ((or-part_0
                                      (wrap-property v_1 'inferred-name)))
                                 (if or-part_0 or-part_0 name_0))))
                          (if (if (null? captures_0)
                                (no-lifts?_0 body-lifts_0)
                                #f)
                            (let ((e_0
                                   (|#%app|
                                    extractable-annotation_0
                                    jitted-proc_0
                                    arity-mask_0
                                    i-name_0)))
                              (call-with-values
                               (lambda ()
                                 (if (convert-mode-need-lift?_0 convert-mode_0)
                                   (add-lift_0 e_0 lifts_0)
                                   (values (list 'quote e_0) lifts_0)))
                               (case-lambda
                                ((get-e_0 new-lifts_0)
                                 (values
                                  (if need-extract?_0
                                    (list 'jitified-extract-closed get-e_0)
                                    get-e_0)
                                  new-lifts_0))
                                (args
                                 (raise-binding-result-arity-error 2 args)))))
                            (let ((e_0
                                   (|#%app|
                                    extractable-annotation_0
                                    (reannotate
                                     v_1
                                     (list
                                      'lambda
                                      (if (no-lifts?_0 body-lifts_0)
                                        captures_0
                                        (cons lifts-id captures_0))
                                      jitted-proc_0))
                                    arity-mask_0
                                    i-name_0)))
                              (call-with-values
                               (lambda ()
                                 (if (no-lifts?_0 body-lifts_0)
                                   (values captures_0 lifts_0)
                                   (if (not
                                        (convert-mode-need-lift?_0
                                         convert-mode_0))
                                     (values
                                      (cons
                                       (list
                                        'quote
                                        (lifts->datum_0 body-lifts_0))
                                       captures_0)
                                      lifts_0)
                                     (call-with-values
                                      (lambda ()
                                        (add-lift_0
                                         (lifts->datum_0 body-lifts_0)
                                         lifts_0))
                                      (case-lambda
                                       ((get-sub-lift_0 new-lifts_0)
                                        (values
                                         (cons get-sub-lift_0 captures_0)
                                         new-lifts_0))
                                       (args
                                        (raise-binding-result-arity-error
                                         2
                                         args)))))))
                               (case-lambda
                                ((all-captures_0 new-lifts_0)
                                 (call-with-values
                                  (lambda ()
                                    (if (convert-mode-need-lift?_0
                                         convert-mode_0)
                                      (add-lift_0 e_0 new-lifts_0)
                                      (values (list 'quote e_0) new-lifts_0)))
                                  (case-lambda
                                   ((get-e_0 newer-lifts_0)
                                    (values
                                     (if need-extract?_0
                                       (list*
                                        (list 'jitified-extract get-e_0)
                                        all-captures_0)
                                       (list* get-e_0 all-captures_0))
                                     newer-lifts_0))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args)))))
                                (args
                                 (raise-binding-result-arity-error
                                  2
                                  args))))))))))))))))
        (top_0
         (|#%name|
          top
          (lambda ()
            (begin
              (loop_0
               add-bindings_0
               jitify-schemified-body_0
               plain-add-args_1
               v_0
               hash2610)))))
        (jitify-schemified-body_0
         (|#%name|
          jitify-schemified-body
          (lambda (body_0 env_0)
            (begin
              (let ((top-env_0
                     (box
                      (begin
                        (letrec*
                         ((for-loop_0
                           (|#%name|
                            for-loop
                            (lambda (env_1 lst_0)
                              (begin
                                (if (pair? lst_0)
                                  (let ((v_1 (unsafe-car lst_0)))
                                    (let ((rest_0 (unsafe-cdr lst_0)))
                                      (let ((env_2
                                             (let ((env_2
                                                    (loop_1
                                                     plain-add-args_1
                                                     v_1
                                                     env_1)))
                                               (values env_2))))
                                        (for-loop_0 env_2 rest_0))))
                                  env_1))))))
                         (for-loop_0 env_0 body_0))))))
                (loop_2 add-self_0 jitify-top-expr_0 top-env_0 body_0))))))
        (jitify-top-expr_0
         (|#%name|
          jitify-top-expr
          (lambda (v_1 env_0 name_0)
            (begin
              (let ((mutables_0 (find-mutable_0 hash2610 v_1 hash2610)))
                (let ((convert-mode_0 (init-convert-mode_0 v_1)))
                  (call-with-values
                   (lambda ()
                     (jitify-expr_0
                      v_1
                      env_0
                      mutables_0
                      hash2610
                      no-lifts_0
                      convert-mode_0
                      name_0
                      #f))
                   (case-lambda
                    ((new-v_0 free_0 lifts_0)
                     (if (no-lifts?_0 lifts_0)
                       new-v_0
                       (list
                        'let
                        (list
                         (list
                          lifts-id
                          (list 'quote (lifts->datum_0 lifts_0))))
                        new-v_0)))
                    (args (raise-binding-result-arity-error 3 args))))))))))
        (jitify-expr_0
         (|#%name|
          jitify-expr
          (lambda (v_1
                   env_0
                   mutables_0
                   free_0
                   lifts_0
                   convert-mode_0
                   name_0
                   in-name_0)
            (begin
              (let ((hd_0
                     (let ((p_0 (unwrap v_1)))
                       (if (pair? p_0) (unwrap (car p_0)) #f))))
                (if (if (eq? 'lambda hd_0)
                      (let ((a_0 (cdr (unwrap v_1))))
                        (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
                      #f)
                  (call-with-values
                   (lambda ()
                     (let ((d_0 (cdr (unwrap v_1))))
                       (let ((p_0 (unwrap d_0)))
                         (let ((args_0 (let ((a_0 (car p_0))) a_0)))
                           (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                             (let ((args_1 args_0))
                               (values args_1 body_0)))))))
                   (case-lambda
                    ((args_0 body_0)
                     (let ((convert?_0
                            (convert-mode-convert-lambda?_0
                             convert-mode_0
                             v_1)))
                       (let ((body-convert-mode_0
                              (convert-mode-lambda-body-mode_0
                               convert-mode_0
                               convert?_0)))
                         (let ((self-env_0
                                (if convert?_0
                                  (activate-self_0
                                   (deactivate-self_0 env_0 in-name_0)
                                   name_0)
                                  env_0)))
                           (let ((body-env_0
                                  (add-args_0
                                   self-env_0
                                   args_0
                                   mutables_0
                                   body-convert-mode_0)))
                             (let ((body-in-name_0
                                    (if convert?_0
                                      (if name_0 name_0 kw2615)
                                      in-name_0)))
                               (let ((body-lifts_0
                                      (if convert?_0 no-lifts_0 lifts_0)))
                                 (call-with-values
                                  (lambda ()
                                    (jitify-body_0
                                     body_0
                                     body-env_0
                                     mutables_0
                                     hash2610
                                     body-lifts_0
                                     body-convert-mode_0
                                     #f
                                     body-in-name_0))
                                  (case-lambda
                                   ((new-body_0
                                     lam-body-free_0
                                     new-body-lifts_0)
                                    (let ((lam-free_0
                                           (remove-args_0
                                            lam-body-free_0
                                            args_0)))
                                      (let ((new-v_0
                                             (reannotate
                                              v_1
                                              (list*
                                               'lambda
                                               args_0
                                               (mutable-box-bindings_0
                                                args_0
                                                mutables_0
                                                body-convert-mode_0
                                                new-body_0)))))
                                        (call-with-values
                                         (lambda ()
                                           (if (not convert?_0)
                                             (values new-v_0 new-body-lifts_0)
                                             (make-jit-on-call_0
                                              lam-free_0
                                              (list args_0)
                                              new-v_0
                                              name_0
                                              self-env_0
                                              convert-mode_0
                                              new-body-lifts_0
                                              lifts_0)))
                                         (case-lambda
                                          ((converted-v_0 new-lifts_0)
                                           (values
                                            converted-v_0
                                            (union-free_0 free_0 lam-free_0)
                                            new-lifts_0))
                                          (args
                                           (raise-binding-result-arity-error
                                            2
                                            args)))))))
                                   (args
                                    (raise-binding-result-arity-error
                                     3
                                     args)))))))))))
                    (args (raise-binding-result-arity-error 2 args))))
                  (if (if (eq? 'case-lambda hd_0)
                        (let ((a_0 (cdr (unwrap v_1))))
                          (if (wrap-list? a_0)
                            (begin
                              (letrec*
                               ((for-loop_0
                                 (|#%name|
                                  for-loop
                                  (lambda (result_0 lst_0)
                                    (begin
                                      (if (not (null? (unwrap lst_0)))
                                        (let ((v_2
                                               (if (pair? (unwrap lst_0))
                                                 (wrap-car lst_0)
                                                 lst_0)))
                                          (let ((rest_0
                                                 (if (pair? (unwrap lst_0))
                                                   (wrap-cdr lst_0)
                                                   null)))
                                            (let ((v_3 v_2))
                                              (let ((result_1
                                                     (let ((result_1
                                                            (let ((p_0
                                                                   (unwrap
                                                                    v_3)))
                                                              (if (pair? p_0)
                                                                #t
                                                                #f))))
                                                       (values result_1))))
                                                (if (if (not
                                                         (let ((x_0
                                                                (list v_3)))
                                                           (not result_1)))
                                                      #t
                                                      #f)
                                                  (for-loop_0 result_1 rest_0)
                                                  result_1)))))
                                        result_0))))))
                               (for-loop_0 #t a_0)))
                            #f))
                        #f)
                    (call-with-values
                     (lambda ()
                       (let ((d_0 (cdr (unwrap v_1))))
                         (call-with-values
                          (lambda ()
                            (begin
                              (letrec*
                               ((for-loop_0
                                 (|#%name|
                                  for-loop
                                  (lambda (argss_0 bodys_0 lst_0)
                                    (begin
                                      (if (not (null? (unwrap lst_0)))
                                        (let ((v_2
                                               (if (pair? (unwrap lst_0))
                                                 (wrap-car lst_0)
                                                 lst_0)))
                                          (let ((rest_0
                                                 (if (pair? (unwrap lst_0))
                                                   (wrap-cdr lst_0)
                                                   null)))
                                            (let ((v_3 v_2))
                                              (call-with-values
                                               (lambda ()
                                                 (call-with-values
                                                  (lambda ()
                                                    (call-with-values
                                                     (lambda ()
                                                       (let ((p_0
                                                              (unwrap v_3)))
                                                         (let ((argss_1
                                                                (let ((a_0
                                                                       (car
                                                                        p_0)))
                                                                  a_0)))
                                                           (let ((bodys_1
                                                                  (let ((d_1
                                                                         (cdr
                                                                          p_0)))
                                                                    d_1)))
                                                             (let ((argss_2
                                                                    argss_1))
                                                               (values
                                                                argss_2
                                                                bodys_1))))))
                                                     (case-lambda
                                                      ((argss8_0 bodys9_0)
                                                       (values
                                                        (cons argss8_0 argss_0)
                                                        (cons
                                                         bodys9_0
                                                         bodys_0)))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args)))))
                                                  (case-lambda
                                                   ((argss_1 bodys_1)
                                                    (values argss_1 bodys_1))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args)))))
                                               (case-lambda
                                                ((argss_1 bodys_1)
                                                 (for-loop_0
                                                  argss_1
                                                  bodys_1
                                                  rest_0))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  2
                                                  args)))))))
                                        (values argss_0 bodys_0)))))))
                               (for-loop_0 null null d_0))))
                          (case-lambda
                           ((argss_0 bodys_0)
                            (let ((app_0 (reverse$1 argss_0)))
                              (values app_0 (reverse$1 bodys_0))))
                           (args (raise-binding-result-arity-error 2 args))))))
                     (case-lambda
                      ((argss_0 bodys_0)
                       (let ((convert?_0
                              (convert-mode-convert-lambda?_0
                               convert-mode_0
                               v_1)))
                         (let ((body-convert-mode_0
                                (convert-mode-lambda-body-mode_0
                                 convert-mode_0
                                 convert?_0)))
                           (let ((self-env_0
                                  (if convert?_0
                                    (activate-self_0
                                     (deactivate-self_0 env_0 in-name_0)
                                     name_0)
                                    env_0)))
                             (let ((body-in-name_0
                                    (if convert?_0
                                      (if name_0 name_0 kw2615)
                                      in-name_0)))
                               (let ((body-lifts_0
                                      (if convert?_0 no-lifts_0 lifts_0)))
                                 (call-with-values
                                  (lambda ()
                                    (begin
                                      (letrec*
                                       ((for-loop_0
                                         (|#%name|
                                          for-loop
                                          (lambda (rev-new-bodys_0
                                                   lam-free_0
                                                   body-lifts_1
                                                   lst_0
                                                   lst_1)
                                            (begin
                                              (if (if (pair? lst_0)
                                                    (pair? lst_1)
                                                    #f)
                                                (let ((args_0
                                                       (unsafe-car lst_0)))
                                                  (let ((rest_0
                                                         (unsafe-cdr lst_0)))
                                                    (let ((body_0
                                                           (unsafe-car lst_1)))
                                                      (let ((rest_1
                                                             (unsafe-cdr
                                                              lst_1)))
                                                        (call-with-values
                                                         (lambda ()
                                                           (call-with-values
                                                            (lambda ()
                                                              (let ((body-env_0
                                                                     (add-args_0
                                                                      self-env_0
                                                                      args_0
                                                                      mutables_0
                                                                      body-convert-mode_0)))
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (jitify-body_0
                                                                    body_0
                                                                    body-env_0
                                                                    mutables_0
                                                                    hash2610
                                                                    body-lifts_1
                                                                    body-convert-mode_0
                                                                    #f
                                                                    body-in-name_0))
                                                                 (case-lambda
                                                                  ((new-body_0
                                                                    lam-body-free_0
                                                                    new-body-lifts_0)
                                                                   (values
                                                                    (cons
                                                                     new-body_0
                                                                     rev-new-bodys_0)
                                                                    (union-free_0
                                                                     (remove-args_0
                                                                      lam-body-free_0
                                                                      args_0)
                                                                     lam-free_0)
                                                                    new-body-lifts_0))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    3
                                                                    args))))))
                                                            (case-lambda
                                                             ((rev-new-bodys_1
                                                               lam-free_1
                                                               body-lifts_2)
                                                              (values
                                                               rev-new-bodys_1
                                                               lam-free_1
                                                               body-lifts_2))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               3
                                                               args)))))
                                                         (case-lambda
                                                          ((rev-new-bodys_1
                                                            lam-free_1
                                                            body-lifts_2)
                                                           (for-loop_0
                                                            rev-new-bodys_1
                                                            lam-free_1
                                                            body-lifts_2
                                                            rest_0
                                                            rest_1))
                                                          (args
                                                           (raise-binding-result-arity-error
                                                            3
                                                            args))))))))
                                                (values
                                                 rev-new-bodys_0
                                                 lam-free_0
                                                 body-lifts_1)))))))
                                       (for-loop_0
                                        '()
                                        hash2610
                                        body-lifts_0
                                        argss_0
                                        bodys_0))))
                                  (case-lambda
                                   ((rev-new-bodys_0
                                     lam-free_0
                                     new-body-lifts_0)
                                    (let ((new-v_0
                                           (reannotate
                                            v_1
                                            (list*
                                             'case-lambda
                                             (reverse$1
                                              (let ((lst_0
                                                     (reverse$1
                                                      rev-new-bodys_0)))
                                                (begin
                                                  (letrec*
                                                   ((for-loop_0
                                                     (|#%name|
                                                      for-loop
                                                      (lambda (fold-var_0
                                                               lst_1
                                                               lst_2)
                                                        (begin
                                                          (if (if (pair? lst_1)
                                                                (pair? lst_2)
                                                                #f)
                                                            (let ((args_0
                                                                   (unsafe-car
                                                                    lst_1)))
                                                              (let ((rest_0
                                                                     (unsafe-cdr
                                                                      lst_1)))
                                                                (let ((body_0
                                                                       (unsafe-car
                                                                        lst_2)))
                                                                  (let ((rest_1
                                                                         (unsafe-cdr
                                                                          lst_2)))
                                                                    (let ((fold-var_1
                                                                           (let ((fold-var_1
                                                                                  (cons
                                                                                   (list*
                                                                                    args_0
                                                                                    (mutable-box-bindings_0
                                                                                     args_0
                                                                                     mutables_0
                                                                                     body-convert-mode_0
                                                                                     body_0))
                                                                                   fold-var_0)))
                                                                             (values
                                                                              fold-var_1))))
                                                                      (for-loop_0
                                                                       fold-var_1
                                                                       rest_0
                                                                       rest_1))))))
                                                            fold-var_0))))))
                                                   (for-loop_0
                                                    null
                                                    argss_0
                                                    lst_0)))))))))
                                      (call-with-values
                                       (lambda ()
                                         (if (not convert?_0)
                                           (values new-v_0 new-body-lifts_0)
                                           (make-jit-on-call_0
                                            lam-free_0
                                            argss_0
                                            new-v_0
                                            name_0
                                            self-env_0
                                            convert-mode_0
                                            new-body-lifts_0
                                            lifts_0)))
                                       (case-lambda
                                        ((converted-v_0 new-lifts_0)
                                         (values
                                          converted-v_0
                                          (union-free_0 free_0 lam-free_0)
                                          new-lifts_0))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))))
                                   (args
                                    (raise-binding-result-arity-error
                                     3
                                     args))))))))))
                      (args (raise-binding-result-arity-error 2 args))))
                    (if (if (eq? 'let hd_0) #t #f)
                      (jitify-let_0
                       v_1
                       env_0
                       mutables_0
                       free_0
                       lifts_0
                       convert-mode_0
                       name_0
                       in-name_0)
                      (if (if (eq? 'letrec hd_0) #t #f)
                        (jitify-let_0
                         v_1
                         env_0
                         mutables_0
                         free_0
                         lifts_0
                         convert-mode_0
                         name_0
                         in-name_0)
                        (if (if (eq? 'letrec* hd_0) #t #f)
                          (jitify-let_0
                           v_1
                           env_0
                           mutables_0
                           free_0
                           lifts_0
                           convert-mode_0
                           name_0
                           in-name_0)
                          (if (if (eq? 'begin hd_0) #t #f)
                            (let ((vs_0 (let ((d_0 (cdr (unwrap v_1)))) d_0)))
                              (call-with-values
                               (lambda ()
                                 (jitify-body_0
                                  vs_0
                                  env_0
                                  mutables_0
                                  free_0
                                  lifts_0
                                  convert-mode_0
                                  name_0
                                  in-name_0))
                               (case-lambda
                                ((new-body_0 new-free_0 new-lifts_0)
                                 (values
                                  (reannotate v_1 (list* 'begin new-body_0))
                                  new-free_0
                                  new-lifts_0))
                                (args
                                 (raise-binding-result-arity-error 3 args)))))
                            (if (if (eq? 'begin0 hd_0)
                                  (let ((a_0 (cdr (unwrap v_1))))
                                    (let ((p_0 (unwrap a_0)))
                                      (if (pair? p_0) #t #f)))
                                  #f)
                              (call-with-values
                               (lambda ()
                                 (let ((d_0 (cdr (unwrap v_1))))
                                   (let ((p_0 (unwrap d_0)))
                                     (let ((v0_0 (let ((a_0 (car p_0))) a_0)))
                                       (let ((vs_0
                                              (let ((d_1 (cdr p_0))) d_1)))
                                         (let ((v0_1 v0_0))
                                           (values v0_1 vs_0)))))))
                               (case-lambda
                                ((v0_0 vs_0)
                                 (call-with-values
                                  (lambda ()
                                    (jitify-expr_0
                                     v0_0
                                     env_0
                                     mutables_0
                                     free_0
                                     lifts_0
                                     (convert-mode-non-tail_0 convert-mode_0)
                                     name_0
                                     in-name_0))
                                  (case-lambda
                                   ((new-v0_0 v0-free_0 v0-lifts_0)
                                    (call-with-values
                                     (lambda ()
                                       (jitify-body_0
                                        vs_0
                                        env_0
                                        mutables_0
                                        v0-free_0
                                        v0-lifts_0
                                        (convert-mode-non-tail_0
                                         convert-mode_0)
                                        #f
                                        in-name_0))
                                     (case-lambda
                                      ((new-body_0 new-free_0 new-lifts_0)
                                       (values
                                        (reannotate
                                         v_1
                                         (list* 'begin0 new-v0_0 new-body_0))
                                        new-free_0
                                        new-lifts_0))
                                      (args
                                       (raise-binding-result-arity-error
                                        3
                                        args)))))
                                   (args
                                    (raise-binding-result-arity-error
                                     3
                                     args)))))
                                (args
                                 (raise-binding-result-arity-error 2 args))))
                              (if (if (eq? '$value hd_0)
                                    (let ((a_0 (cdr (unwrap v_1))))
                                      (let ((p_0 (unwrap a_0)))
                                        (if (pair? p_0)
                                          (let ((a_1 (cdr p_0)))
                                            (let ((app_0 (unwrap '())))
                                              (eq? app_0 (unwrap a_1))))
                                          #f)))
                                    #f)
                                (let ((e_0
                                       (let ((d_0 (cdr (unwrap v_1))))
                                         (let ((a_0 (car (unwrap d_0))))
                                           a_0))))
                                  (call-with-values
                                   (lambda ()
                                     (jitify-expr_0
                                      e_0
                                      env_0
                                      mutables_0
                                      free_0
                                      lifts_0
                                      convert-mode_0
                                      name_0
                                      in-name_0))
                                   (case-lambda
                                    ((new-e_0 new-free_0 new-lifts_0)
                                     (values
                                      (reannotate v_1 (list '$value new-e_0))
                                      new-free_0
                                      new-lifts_0))
                                    (args
                                     (raise-binding-result-arity-error
                                      3
                                      args)))))
                                (if (if (eq? 'if hd_0)
                                      (let ((a_0 (cdr (unwrap v_1))))
                                        (let ((p_0 (unwrap a_0)))
                                          (if (pair? p_0)
                                            (let ((a_1 (cdr p_0)))
                                              (let ((p_1 (unwrap a_1)))
                                                (if (pair? p_1)
                                                  (let ((a_2 (cdr p_1)))
                                                    (let ((p_2 (unwrap a_2)))
                                                      (if (pair? p_2)
                                                        (let ((a_3 (cdr p_2)))
                                                          (let ((app_0
                                                                 (unwrap '())))
                                                            (eq?
                                                             app_0
                                                             (unwrap a_3))))
                                                        #f)))
                                                  #f)))
                                            #f)))
                                      #f)
                                  (call-with-values
                                   (lambda ()
                                     (let ((d_0 (cdr (unwrap v_1))))
                                       (let ((p_0 (unwrap d_0)))
                                         (let ((tst_0
                                                (let ((a_0 (car p_0))) a_0)))
                                           (call-with-values
                                            (lambda ()
                                              (let ((d_1 (cdr p_0)))
                                                (let ((p_1 (unwrap d_1)))
                                                  (let ((thn_0
                                                         (let ((a_0 (car p_1)))
                                                           a_0)))
                                                    (let ((els_0
                                                           (let ((d_2
                                                                  (cdr p_1)))
                                                             (let ((a_0
                                                                    (car
                                                                     (unwrap
                                                                      d_2))))
                                                               a_0))))
                                                      (let ((thn_1 thn_0))
                                                        (values
                                                         thn_1
                                                         els_0)))))))
                                            (case-lambda
                                             ((thn_0 els_0)
                                              (let ((tst_1 tst_0))
                                                (values tst_1 thn_0 els_0)))
                                             (args
                                              (raise-binding-result-arity-error
                                               2
                                               args))))))))
                                   (case-lambda
                                    ((tst_0 thn_0 els_0)
                                     (let ((sub-convert-mode_0
                                            (convert-mode-non-tail_0
                                             convert-mode_0)))
                                       (call-with-values
                                        (lambda ()
                                          (jitify-expr_0
                                           tst_0
                                           env_0
                                           mutables_0
                                           free_0
                                           lifts_0
                                           sub-convert-mode_0
                                           #f
                                           in-name_0))
                                        (case-lambda
                                         ((new-tst_0
                                           new-free/tst_0
                                           new-lifts/tst_0)
                                          (call-with-values
                                           (lambda ()
                                             (jitify-expr_0
                                              thn_0
                                              env_0
                                              mutables_0
                                              new-free/tst_0
                                              new-lifts/tst_0
                                              convert-mode_0
                                              name_0
                                              in-name_0))
                                           (case-lambda
                                            ((new-thn_0
                                              new-free/thn_0
                                              new-lifts/thn_0)
                                             (call-with-values
                                              (lambda ()
                                                (jitify-expr_0
                                                 els_0
                                                 env_0
                                                 mutables_0
                                                 new-free/thn_0
                                                 new-lifts/thn_0
                                                 convert-mode_0
                                                 name_0
                                                 in-name_0))
                                              (case-lambda
                                               ((new-els_0
                                                 new-free/els_0
                                                 new-lifts/els_0)
                                                (values
                                                 (reannotate
                                                  v_1
                                                  (list
                                                   'if
                                                   new-tst_0
                                                   new-thn_0
                                                   new-els_0))
                                                 new-free/els_0
                                                 new-lifts/els_0))
                                               (args
                                                (raise-binding-result-arity-error
                                                 3
                                                 args)))))
                                            (args
                                             (raise-binding-result-arity-error
                                              3
                                              args)))))
                                         (args
                                          (raise-binding-result-arity-error
                                           3
                                           args))))))
                                    (args
                                     (raise-binding-result-arity-error
                                      3
                                      args))))
                                  (if (if (eq? 'with-continuation-mark* hd_0)
                                        (let ((a_0 (cdr (unwrap v_1))))
                                          (let ((p_0 (unwrap a_0)))
                                            (if (pair? p_0)
                                              (let ((a_1 (cdr p_0)))
                                                (let ((p_1 (unwrap a_1)))
                                                  (if (pair? p_1)
                                                    (let ((a_2 (cdr p_1)))
                                                      (let ((p_2 (unwrap a_2)))
                                                        (if (pair? p_2)
                                                          (let ((a_3
                                                                 (cdr p_2)))
                                                            (let ((p_3
                                                                   (unwrap
                                                                    a_3)))
                                                              (if (pair? p_3)
                                                                (let ((a_4
                                                                       (cdr
                                                                        p_3)))
                                                                  (let ((app_0
                                                                         (unwrap
                                                                          '())))
                                                                    (eq?
                                                                     app_0
                                                                     (unwrap
                                                                      a_4))))
                                                                #f)))
                                                          #f)))
                                                    #f)))
                                              #f)))
                                        #f)
                                    (call-with-values
                                     (lambda ()
                                       (let ((d_0 (cdr (unwrap v_1))))
                                         (let ((p_0 (unwrap d_0)))
                                           (let ((mode_0
                                                  (let ((a_0 (car p_0))) a_0)))
                                             (call-with-values
                                              (lambda ()
                                                (let ((d_1 (cdr p_0)))
                                                  (let ((p_1 (unwrap d_1)))
                                                    (let ((key_0
                                                           (let ((a_0
                                                                  (car p_1)))
                                                             a_0)))
                                                      (call-with-values
                                                       (lambda ()
                                                         (let ((d_2 (cdr p_1)))
                                                           (let ((p_2
                                                                  (unwrap
                                                                   d_2)))
                                                             (let ((val_0
                                                                    (let ((a_0
                                                                           (car
                                                                            p_2)))
                                                                      a_0)))
                                                               (let ((body_0
                                                                      (let ((d_3
                                                                             (cdr
                                                                              p_2)))
                                                                        (let ((a_0
                                                                               (car
                                                                                (unwrap
                                                                                 d_3))))
                                                                          a_0))))
                                                                 (let ((val_1
                                                                        val_0))
                                                                   (values
                                                                    val_1
                                                                    body_0)))))))
                                                       (case-lambda
                                                        ((val_0 body_0)
                                                         (let ((key_1 key_0))
                                                           (values
                                                            key_1
                                                            val_0
                                                            body_0)))
                                                        (args
                                                         (raise-binding-result-arity-error
                                                          2
                                                          args))))))))
                                              (case-lambda
                                               ((key_0 val_0 body_0)
                                                (let ((mode_1 mode_0))
                                                  (values
                                                   mode_1
                                                   key_0
                                                   val_0
                                                   body_0)))
                                               (args
                                                (raise-binding-result-arity-error
                                                 3
                                                 args))))))))
                                     (case-lambda
                                      ((mode_0 key_0 val_0 body_0)
                                       (let ((sub-convert-mode_0
                                              (convert-mode-non-tail_0
                                               convert-mode_0)))
                                         (call-with-values
                                          (lambda ()
                                            (jitify-expr_0
                                             key_0
                                             env_0
                                             mutables_0
                                             free_0
                                             lifts_0
                                             sub-convert-mode_0
                                             #f
                                             in-name_0))
                                          (case-lambda
                                           ((new-key_0
                                             new-free/key_0
                                             new-lifts/key_0)
                                            (call-with-values
                                             (lambda ()
                                               (jitify-expr_0
                                                val_0
                                                env_0
                                                mutables_0
                                                new-free/key_0
                                                new-lifts/key_0
                                                sub-convert-mode_0
                                                #f
                                                in-name_0))
                                             (case-lambda
                                              ((new-val_0
                                                new-free/val_0
                                                new-lifts/val_0)
                                               (call-with-values
                                                (lambda ()
                                                  (jitify-expr_0
                                                   body_0
                                                   env_0
                                                   mutables_0
                                                   new-free/val_0
                                                   new-lifts/val_0
                                                   convert-mode_0
                                                   name_0
                                                   in-name_0))
                                                (case-lambda
                                                 ((new-body_0
                                                   new-free/body_0
                                                   new-lifts/body_0)
                                                  (values
                                                   (reannotate
                                                    v_1
                                                    (list
                                                     'with-continuation-mark*
                                                     mode_0
                                                     new-key_0
                                                     new-val_0
                                                     new-body_0))
                                                   new-free/body_0
                                                   new-lifts/body_0))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   3
                                                   args)))))
                                              (args
                                               (raise-binding-result-arity-error
                                                3
                                                args)))))
                                           (args
                                            (raise-binding-result-arity-error
                                             3
                                             args))))))
                                      (args
                                       (raise-binding-result-arity-error
                                        4
                                        args))))
                                    (if (if (eq? 'quote hd_0)
                                          (let ((a_0 (cdr (unwrap v_1))))
                                            (let ((p_0 (unwrap a_0)))
                                              (if (pair? p_0)
                                                (let ((a_1 (cdr p_0)))
                                                  (let ((app_0 (unwrap '())))
                                                    (eq? app_0 (unwrap a_1))))
                                                #f)))
                                          #f)
                                      (values v_1 free_0 lifts_0)
                                      (if (if (eq? 'set! hd_0)
                                            (let ((a_0 (cdr (unwrap v_1))))
                                              (let ((p_0 (unwrap a_0)))
                                                (if (pair? p_0)
                                                  (let ((a_1 (cdr p_0)))
                                                    (let ((p_1 (unwrap a_1)))
                                                      (if (pair? p_1)
                                                        (let ((a_2 (cdr p_1)))
                                                          (let ((app_0
                                                                 (unwrap '())))
                                                            (eq?
                                                             app_0
                                                             (unwrap a_2))))
                                                        #f)))
                                                  #f)))
                                            #f)
                                        (call-with-values
                                         (lambda ()
                                           (let ((d_0 (cdr (unwrap v_1))))
                                             (let ((p_0 (unwrap d_0)))
                                               (let ((var_0
                                                      (let ((a_0 (car p_0)))
                                                        a_0)))
                                                 (let ((rhs_0
                                                        (let ((d_1 (cdr p_0)))
                                                          (let ((a_0
                                                                 (car
                                                                  (unwrap
                                                                   d_1))))
                                                            a_0))))
                                                   (let ((var_1 var_0))
                                                     (values var_1 rhs_0)))))))
                                         (case-lambda
                                          ((var_0 rhs_0)
                                           (call-with-values
                                            (lambda ()
                                              (jitify-expr_0
                                               rhs_0
                                               env_0
                                               mutables_0
                                               free_0
                                               lifts_0
                                               (convert-mode-non-tail_0
                                                convert-mode_0)
                                               var_0
                                               in-name_0))
                                            (case-lambda
                                             ((new-rhs_0
                                               new-free_0
                                               new-lifts_0)
                                              (let ((id_0 (unwrap var_0)))
                                                (let ((dest_0
                                                       (hash-ref
                                                        env_0
                                                        id_0
                                                        #f)))
                                                  (if (if (not in-name_0)
                                                        (let ((hd_1
                                                               (let ((p_0
                                                                      (unwrap
                                                                       dest_0)))
                                                                 (if (pair?
                                                                      p_0)
                                                                   (unwrap
                                                                    (car p_0))
                                                                   #f))))
                                                          (if (if (eq?
                                                                   'variable-ref
                                                                   hd_1)
                                                                (let ((a_0
                                                                       (cdr
                                                                        (unwrap
                                                                         dest_0))))
                                                                  (let ((p_0
                                                                         (unwrap
                                                                          a_0)))
                                                                    (if (pair?
                                                                         p_0)
                                                                      (let ((a_1
                                                                             (cdr
                                                                              p_0)))
                                                                        (let ((app_0
                                                                               (unwrap
                                                                                '())))
                                                                          (eq?
                                                                           app_0
                                                                           (unwrap
                                                                            a_1))))
                                                                      #f)))
                                                                #f)
                                                            #t
                                                            #f))
                                                        #f)
                                                    (values
                                                     (list
                                                      'set!
                                                      var_0
                                                      new-rhs_0)
                                                     new-free_0
                                                     new-lifts_0)
                                                    (let ((newer-free_0
                                                           (if dest_0
                                                             (hash-set
                                                              new-free_0
                                                              id_0
                                                              dest_0)
                                                             new-free_0)))
                                                      (let ((new-v_0
                                                             (let ((v_2
                                                                    (hash-ref
                                                                     env_0
                                                                     id_0
                                                                     kw2846)))
                                                               (if (let ((a_0
                                                                          kw2846))
                                                                     (let ((app_0
                                                                            (unwrap
                                                                             a_0)))
                                                                       (eq?
                                                                        app_0
                                                                        (unwrap
                                                                         v_2))))
                                                                 (reannotate
                                                                  v_1
                                                                  (list
                                                                   'set!
                                                                   var_0
                                                                   new-rhs_0))
                                                                 (if (let ((p_0
                                                                            (unwrap
                                                                             v_2)))
                                                                       (if (pair?
                                                                            p_0)
                                                                         (if (let ((a_0
                                                                                    (car
                                                                                     p_0)))
                                                                               (let ((app_0
                                                                                      (unwrap
                                                                                       'self)))
                                                                                 (eq?
                                                                                  app_0
                                                                                  (unwrap
                                                                                   a_0))))
                                                                           (let ((a_0
                                                                                  (cdr
                                                                                   p_0)))
                                                                             (let ((p_1
                                                                                    (unwrap
                                                                                     a_0)))
                                                                               (if (pair?
                                                                                    p_1)
                                                                                 #t
                                                                                 #f)))
                                                                           #f)
                                                                         #f))
                                                                   (let ((m_0
                                                                          (let ((d_0
                                                                                 (cdr
                                                                                  (unwrap
                                                                                   v_2))))
                                                                            (let ((a_0
                                                                                   (car
                                                                                    (unwrap
                                                                                     d_0))))
                                                                              a_0))))
                                                                     (error
                                                                      'set!
                                                                      "[internal error] self-referenceable ~s"
                                                                      id_0))
                                                                   (if (let ((p_0
                                                                              (unwrap
                                                                               v_2)))
                                                                         (if (pair?
                                                                              p_0)
                                                                           (if (let ((a_0
                                                                                      (car
                                                                                       p_0)))
                                                                                 (let ((app_0
                                                                                        (unwrap
                                                                                         'variable-ref)))
                                                                                   (eq?
                                                                                    app_0
                                                                                    (unwrap
                                                                                     a_0))))
                                                                             (let ((a_0
                                                                                    (cdr
                                                                                     p_0)))
                                                                               (let ((p_1
                                                                                      (unwrap
                                                                                       a_0)))
                                                                                 (if (pair?
                                                                                      p_1)
                                                                                   (let ((a_1
                                                                                          (cdr
                                                                                           p_1)))
                                                                                     (let ((app_0
                                                                                            (unwrap
                                                                                             '())))
                                                                                       (eq?
                                                                                        app_0
                                                                                        (unwrap
                                                                                         a_1))))
                                                                                   #f)))
                                                                             #f)
                                                                           #f))
                                                                     (let ((var-id_0
                                                                            (let ((d_0
                                                                                   (cdr
                                                                                    (unwrap
                                                                                     v_2))))
                                                                              (let ((a_0
                                                                                     (car
                                                                                      (unwrap
                                                                                       d_0))))
                                                                                a_0))))
                                                                       (reannotate
                                                                        v_1
                                                                        (list
                                                                         'variable-set!
                                                                         var-id_0
                                                                         new-rhs_0)))
                                                                     (if (let ((p_0
                                                                                (unwrap
                                                                                 v_2)))
                                                                           (if (pair?
                                                                                p_0)
                                                                             (if (let ((a_0
                                                                                        (car
                                                                                         p_0)))
                                                                                   (let ((app_0
                                                                                          (unwrap
                                                                                           'unsafe-unbox*)))
                                                                                     (eq?
                                                                                      app_0
                                                                                      (unwrap
                                                                                       a_0))))
                                                                               (let ((a_0
                                                                                      (cdr
                                                                                       p_0)))
                                                                                 (let ((p_1
                                                                                        (unwrap
                                                                                         a_0)))
                                                                                   (if (pair?
                                                                                        p_1)
                                                                                     (let ((a_1
                                                                                            (cdr
                                                                                             p_1)))
                                                                                       (let ((app_0
                                                                                              (unwrap
                                                                                               '())))
                                                                                         (eq?
                                                                                          app_0
                                                                                          (unwrap
                                                                                           a_1))))
                                                                                     #f)))
                                                                               #f)
                                                                             #f))
                                                                       (let ((box-id_0
                                                                              (let ((d_0
                                                                                     (cdr
                                                                                      (unwrap
                                                                                       v_2))))
                                                                                (let ((a_0
                                                                                       (car
                                                                                        (unwrap
                                                                                         d_0))))
                                                                                  a_0))))
                                                                         (reannotate
                                                                          v_1
                                                                          (list
                                                                           'set-box*!
                                                                           box-id_0
                                                                           new-rhs_0)))
                                                                       (error
                                                                        'match
                                                                        "failed ~e"
                                                                        v_2))))))))
                                                        (values
                                                         new-v_0
                                                         newer-free_0
                                                         new-lifts_0)))))))
                                             (args
                                              (raise-binding-result-arity-error
                                               3
                                               args)))))
                                          (args
                                           (raise-binding-result-arity-error
                                            2
                                            args))))
                                        (if (if (eq? 'call-with-values hd_0)
                                              (let ((a_0 (cdr (unwrap v_1))))
                                                (let ((p_0 (unwrap a_0)))
                                                  (if (pair? p_0)
                                                    (let ((a_1 (cdr p_0)))
                                                      (let ((p_1 (unwrap a_1)))
                                                        (if (pair? p_1)
                                                          (let ((a_2
                                                                 (cdr p_1)))
                                                            (let ((app_0
                                                                   (unwrap
                                                                    '())))
                                                              (eq?
                                                               app_0
                                                               (unwrap a_2))))
                                                          #f)))
                                                    #f)))
                                              #f)
                                          (call-with-values
                                           (lambda ()
                                             (let ((d_0 (cdr (unwrap v_1))))
                                               (let ((p_0 (unwrap d_0)))
                                                 (let ((proc1_0
                                                        (let ((a_0 (car p_0)))
                                                          a_0)))
                                                   (let ((proc2_0
                                                          (let ((d_1
                                                                 (cdr p_0)))
                                                            (let ((a_0
                                                                   (car
                                                                    (unwrap
                                                                     d_1))))
                                                              a_0))))
                                                     (let ((proc1_1 proc1_0))
                                                       (values
                                                        proc1_1
                                                        proc2_0)))))))
                                           (case-lambda
                                            ((proc1_0 proc2_0)
                                             (let ((proc-convert-mode_0
                                                    (convert-mode-called_0
                                                     convert-mode_0)))
                                               (call-with-values
                                                (lambda ()
                                                  (jitify-expr_0
                                                   proc1_0
                                                   env_0
                                                   mutables_0
                                                   free_0
                                                   lifts_0
                                                   proc-convert-mode_0
                                                   #f
                                                   in-name_0))
                                                (case-lambda
                                                 ((new-proc1_0
                                                   new-free1_0
                                                   new-lifts1_0)
                                                  (call-with-values
                                                   (lambda ()
                                                     (jitify-expr_0
                                                      proc2_0
                                                      env_0
                                                      mutables_0
                                                      new-free1_0
                                                      new-lifts1_0
                                                      proc-convert-mode_0
                                                      #f
                                                      in-name_0))
                                                   (case-lambda
                                                    ((new-proc2_0
                                                      new-free2_0
                                                      new-lifts2_0)
                                                     (let ((call-with-values-id_0
                                                            (if (if (lambda?_0
                                                                     new-proc1_0)
                                                                  (lambda?_0
                                                                   new-proc2_0)
                                                                  #f)
                                                              'call-with-values
                                                              '|#%call-with-values|)))
                                                       (values
                                                        (reannotate
                                                         v_1
                                                         (list
                                                          call-with-values-id_0
                                                          new-proc1_0
                                                          new-proc2_0))
                                                        new-free2_0
                                                        new-lifts2_0)))
                                                    (args
                                                     (raise-binding-result-arity-error
                                                      3
                                                      args)))))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   3
                                                   args))))))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args))))
                                          (if (if (eq?
                                                   'call-with-module-prompt
                                                   hd_0)
                                                (let ((a_0 (cdr (unwrap v_1))))
                                                  (let ((p_0 (unwrap a_0)))
                                                    (if (pair? p_0)
                                                      (let ((a_1 (cdr p_0)))
                                                        (wrap-list? a_1))
                                                      #f)))
                                                #f)
                                            (call-with-values
                                             (lambda ()
                                               (let ((d_0 (cdr (unwrap v_1))))
                                                 (let ((p_0 (unwrap d_0)))
                                                   (let ((proc_0
                                                          (let ((a_0
                                                                 (car p_0)))
                                                            a_0)))
                                                     (let ((var-info_0
                                                            (let ((d_1
                                                                   (cdr p_0)))
                                                              (unwrap-list
                                                               d_1))))
                                                       (let ((proc_1 proc_0))
                                                         (values
                                                          proc_1
                                                          var-info_0)))))))
                                             (case-lambda
                                              ((proc_0 var-info_0)
                                               (let ((proc-convert-mode_0
                                                      (convert-mode-called_0
                                                       convert-mode_0)))
                                                 (call-with-values
                                                  (lambda ()
                                                    (jitify-expr_0
                                                     proc_0
                                                     env_0
                                                     mutables_0
                                                     free_0
                                                     lifts_0
                                                     proc-convert-mode_0
                                                     #f
                                                     in-name_0))
                                                  (case-lambda
                                                   ((new-proc_0
                                                     new-free_0
                                                     new-lifts_0)
                                                    (values
                                                     (reannotate
                                                      v_1
                                                      (list*
                                                       'call-with-module-prompt
                                                       new-proc_0
                                                       var-info_0))
                                                     new-free_0
                                                     new-lifts_0))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     3
                                                     args))))))
                                              (args
                                               (raise-binding-result-arity-error
                                                2
                                                args))))
                                            (if (if (eq? '|#%app| hd_0)
                                                  (let ((a_0
                                                         (cdr (unwrap v_1))))
                                                    (wrap-list? a_0))
                                                  #f)
                                              (call-with-values
                                               (lambda ()
                                                 (let ((app_0 (wrap-cdr v_1)))
                                                   (jitify-body_0
                                                    app_0
                                                    env_0
                                                    mutables_0
                                                    free_0
                                                    lifts_0
                                                    (convert-mode-non-tail_0
                                                     convert-mode_0)
                                                    #f
                                                    in-name_0)))
                                               (case-lambda
                                                ((new-vs_0
                                                  new-free_0
                                                  new-lifts_0)
                                                 (values
                                                  (reannotate
                                                   v_1
                                                   (list* '|#%app| new-vs_0))
                                                  new-free_0
                                                  new-lifts_0))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  3
                                                  args))))
                                              (if (let ((p_0 (unwrap v_1)))
                                                    (if (pair? p_0)
                                                      (let ((a_0 (cdr p_0)))
                                                        (wrap-list? a_0))
                                                      #f))
                                                (let ((rator_0
                                                       (let ((a_0
                                                              (car
                                                               (unwrap v_1))))
                                                         a_0)))
                                                  (let ((u_0 (unwrap rator_0)))
                                                    (let ((v_2
                                                           (if (symbol? u_0)
                                                             (hash-ref
                                                              env_0
                                                              u_0
                                                              #f)
                                                             #f)))
                                                      (let ((hd_1
                                                             (let ((p_0
                                                                    (unwrap
                                                                     v_2)))
                                                               (if (pair? p_0)
                                                                 (unwrap
                                                                  (car p_0))
                                                                 #f))))
                                                        (if (if (eq?
                                                                 'self
                                                                 hd_1)
                                                              (let ((a_0
                                                                     (cdr
                                                                      (unwrap
                                                                       v_2))))
                                                                (let ((p_0
                                                                       (unwrap
                                                                        a_0)))
                                                                  (if (pair?
                                                                       p_0)
                                                                    (let ((a_1
                                                                           (cdr
                                                                            p_0)))
                                                                      (let ((p_1
                                                                             (unwrap
                                                                              a_1)))
                                                                        (if (pair?
                                                                             p_1)
                                                                          (let ((a_2
                                                                                 (cdr
                                                                                  p_1)))
                                                                            (let ((app_0
                                                                                   (unwrap
                                                                                    '())))
                                                                              (eq?
                                                                               app_0
                                                                               (unwrap
                                                                                a_2))))
                                                                          #f)))
                                                                    #f)))
                                                              #f)
                                                          (let ((orig-id_0
                                                                 (let ((d_0
                                                                        (cdr
                                                                         (unwrap
                                                                          v_2))))
                                                                   (let ((d_1
                                                                          (cdr
                                                                           (unwrap
                                                                            d_0))))
                                                                     (let ((a_0
                                                                            (car
                                                                             (unwrap
                                                                              d_1))))
                                                                       a_0)))))
                                                            (call-with-values
                                                             (lambda ()
                                                               (let ((app_0
                                                                      (wrap-cdr
                                                                       v_1)))
                                                                 (jitify-body_0
                                                                  app_0
                                                                  env_0
                                                                  mutables_0
                                                                  free_0
                                                                  lifts_0
                                                                  (convert-mode-non-tail_0
                                                                   convert-mode_0)
                                                                  #f
                                                                  in-name_0)))
                                                             (case-lambda
                                                              ((new-vs_0
                                                                new-free_0
                                                                new-lifts_0)
                                                               (values
                                                                (reannotate
                                                                 v_1
                                                                 (list*
                                                                  rator_0
                                                                  new-vs_0))
                                                                new-free_0
                                                                new-lifts_0))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                3
                                                                args)))))
                                                          (call-with-values
                                                           (lambda ()
                                                             (jitify-body_0
                                                              v_1
                                                              env_0
                                                              mutables_0
                                                              free_0
                                                              lifts_0
                                                              (convert-mode-non-tail_0
                                                               convert-mode_0)
                                                              #f
                                                              in-name_0))
                                                           (case-lambda
                                                            ((new-vs_0
                                                              new-free_0
                                                              new-lifts_0)
                                                             (values
                                                              (reannotate
                                                               v_1
                                                               new-vs_0)
                                                              new-free_0
                                                              new-lifts_0))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              3
                                                              args)))))))))
                                                (let ((id_0 (unwrap v_1)))
                                                  (let ((dest_0
                                                         (hash-ref
                                                          env_0
                                                          id_0
                                                          #f)))
                                                    (if (if (not in-name_0)
                                                          (let ((hd_1
                                                                 (let ((p_0
                                                                        (unwrap
                                                                         dest_0)))
                                                                   (if (pair?
                                                                        p_0)
                                                                     (unwrap
                                                                      (car
                                                                       p_0))
                                                                     #f))))
                                                            (if (if (eq?
                                                                     'variable-ref
                                                                     hd_1)
                                                                  (let ((a_0
                                                                         (cdr
                                                                          (unwrap
                                                                           dest_0))))
                                                                    (let ((p_0
                                                                           (unwrap
                                                                            a_0)))
                                                                      (if (pair?
                                                                           p_0)
                                                                        (let ((a_1
                                                                               (cdr
                                                                                p_0)))
                                                                          (let ((app_0
                                                                                 (unwrap
                                                                                  '())))
                                                                            (eq?
                                                                             app_0
                                                                             (unwrap
                                                                              a_1))))
                                                                        #f)))
                                                                  #f)
                                                              #t
                                                              #f))
                                                          #f)
                                                      (values
                                                       v_1
                                                       free_0
                                                       lifts_0)
                                                      (let ((new-var_0
                                                             (if (let ((app_0
                                                                        (unwrap
                                                                         #f)))
                                                                   (eq?
                                                                    app_0
                                                                    (unwrap
                                                                     dest_0)))
                                                               v_1
                                                               (if (let ((a_0
                                                                          kw2846))
                                                                     (let ((app_0
                                                                            (unwrap
                                                                             a_0)))
                                                                       (eq?
                                                                        app_0
                                                                        (unwrap
                                                                         dest_0))))
                                                                 v_1
                                                                 (if (let ((p_0
                                                                            (unwrap
                                                                             dest_0)))
                                                                       (if (pair?
                                                                            p_0)
                                                                         (if (let ((a_0
                                                                                    (car
                                                                                     p_0)))
                                                                               (let ((app_0
                                                                                      (unwrap
                                                                                       'self)))
                                                                                 (eq?
                                                                                  app_0
                                                                                  (unwrap
                                                                                   a_0))))
                                                                           (let ((a_0
                                                                                  (cdr
                                                                                   p_0)))
                                                                             (let ((p_1
                                                                                    (unwrap
                                                                                     a_0)))
                                                                               (if (pair?
                                                                                    p_1)
                                                                                 #t
                                                                                 #f)))
                                                                           #f)
                                                                         #f))
                                                                   (let ((u_0
                                                                          (let ((d_0
                                                                                 (cdr
                                                                                  (unwrap
                                                                                   dest_0))))
                                                                            (let ((a_0
                                                                                   (car
                                                                                    (unwrap
                                                                                     d_0))))
                                                                              a_0))))
                                                                     (reannotate
                                                                      v_1
                                                                      u_0))
                                                                   (reannotate
                                                                    v_1
                                                                    dest_0))))))
                                                        (let ((new-free_0
                                                               (if dest_0
                                                                 (hash-set
                                                                  free_0
                                                                  id_0
                                                                  dest_0)
                                                                 free_0)))
                                                          (values
                                                           new-var_0
                                                           new-free_0
                                                           lifts_0)))))))))))))))))))))))))))
        (lambda?_0 procz2)
        (jitify-body_0
         (|#%name|
          jitify-body
          (lambda (vs_0
                   env_0
                   mutables_0
                   free_0
                   lifts_0
                   convert-mode_0
                   name_0
                   in-name_0)
            (begin
              (loop_3
               convert-mode-non-tail_0
               convert-mode_0
               env_0
               in-name_0
               jitify-expr_0
               mutables_0
               name_0
               vs_0
               free_0
               lifts_0)))))
        (jitify-let_0
         (|#%name|
          jitify-let
          (lambda (v_1
                   env_0
                   mutables_0
                   free_0
                   lifts_0
                   convert-mode_0
                   name_0
                   in-name_0)
            (begin
              (if (let ((p_0 (unwrap v_1)))
                    (if (pair? p_0)
                      (let ((a_0 (cdr p_0)))
                        (let ((p_1 (unwrap a_0)))
                          (if (pair? p_1)
                            (if (let ((a_1 (car p_1)))
                                  (if (wrap-list? a_1)
                                    (begin
                                      (letrec*
                                       ((for-loop_0
                                         (|#%name|
                                          for-loop
                                          (lambda (result_0 lst_0)
                                            (begin
                                              (if (not (null? (unwrap lst_0)))
                                                (let ((v_2
                                                       (if (pair?
                                                            (unwrap lst_0))
                                                         (wrap-car lst_0)
                                                         lst_0)))
                                                  (let ((rest_0
                                                         (if (pair?
                                                              (unwrap lst_0))
                                                           (wrap-cdr lst_0)
                                                           null)))
                                                    (let ((v_3 v_2))
                                                      (let ((result_1
                                                             (let ((result_1
                                                                    (let ((p_2
                                                                           (unwrap
                                                                            v_3)))
                                                                      (if (pair?
                                                                           p_2)
                                                                        (let ((a_2
                                                                               (cdr
                                                                                p_2)))
                                                                          (let ((p_3
                                                                                 (unwrap
                                                                                  a_2)))
                                                                            (if (pair?
                                                                                 p_3)
                                                                              (let ((a_3
                                                                                     (cdr
                                                                                      p_3)))
                                                                                (let ((app_0
                                                                                       (unwrap
                                                                                        '())))
                                                                                  (eq?
                                                                                   app_0
                                                                                   (unwrap
                                                                                    a_3))))
                                                                              #f)))
                                                                        #f))))
                                                               (values
                                                                result_1))))
                                                        (if (if (not
                                                                 (let ((x_0
                                                                        (list
                                                                         v_3)))
                                                                   (not
                                                                    result_1)))
                                                              #t
                                                              #f)
                                                          (for-loop_0
                                                           result_1
                                                           rest_0)
                                                          result_1)))))
                                                result_0))))))
                                       (for-loop_0 #t a_1)))
                                    #f))
                              #t
                              #f)
                            #f)))
                      #f))
                (call-with-values
                 (lambda ()
                   (let ((p_0 (unwrap v_1)))
                     (let ((let-form_0 (let ((a_0 (car p_0))) a_0)))
                       (call-with-values
                        (lambda ()
                          (let ((d_0 (cdr p_0)))
                            (let ((p_1 (unwrap d_0)))
                              (call-with-values
                               (lambda ()
                                 (let ((a_0 (car p_1)))
                                   (call-with-values
                                    (lambda ()
                                      (begin
                                        (letrec*
                                         ((for-loop_0
                                           (|#%name|
                                            for-loop
                                            (lambda (ids_0 rhss_0 lst_0)
                                              (begin
                                                (if (not
                                                     (null? (unwrap lst_0)))
                                                  (let ((v_2
                                                         (if (pair?
                                                              (unwrap lst_0))
                                                           (wrap-car lst_0)
                                                           lst_0)))
                                                    (let ((rest_0
                                                           (if (pair?
                                                                (unwrap lst_0))
                                                             (wrap-cdr lst_0)
                                                             null)))
                                                      (let ((v_3 v_2))
                                                        (call-with-values
                                                         (lambda ()
                                                           (call-with-values
                                                            (lambda ()
                                                              (call-with-values
                                                               (lambda ()
                                                                 (let ((p_2
                                                                        (unwrap
                                                                         v_3)))
                                                                   (let ((ids_1
                                                                          (let ((a_1
                                                                                 (car
                                                                                  p_2)))
                                                                            a_1)))
                                                                     (let ((rhss_1
                                                                            (let ((d_1
                                                                                   (cdr
                                                                                    p_2)))
                                                                              (let ((a_1
                                                                                     (car
                                                                                      (unwrap
                                                                                       d_1))))
                                                                                a_1))))
                                                                       (let ((ids_2
                                                                              ids_1))
                                                                         (values
                                                                          ids_2
                                                                          rhss_1))))))
                                                               (case-lambda
                                                                ((ids10_0
                                                                  rhss11_0)
                                                                 (values
                                                                  (cons
                                                                   ids10_0
                                                                   ids_0)
                                                                  (cons
                                                                   rhss11_0
                                                                   rhss_0)))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))
                                                            (case-lambda
                                                             ((ids_1 rhss_1)
                                                              (values
                                                               ids_1
                                                               rhss_1))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               2
                                                               args)))))
                                                         (case-lambda
                                                          ((ids_1 rhss_1)
                                                           (for-loop_0
                                                            ids_1
                                                            rhss_1
                                                            rest_0))
                                                          (args
                                                           (raise-binding-result-arity-error
                                                            2
                                                            args)))))))
                                                  (values ids_0 rhss_0)))))))
                                         (for-loop_0 null null a_0))))
                                    (case-lambda
                                     ((ids_0 rhss_0)
                                      (let ((app_0 (reverse$1 ids_0)))
                                        (values app_0 (reverse$1 rhss_0))))
                                     (args
                                      (raise-binding-result-arity-error
                                       2
                                       args))))))
                               (case-lambda
                                ((ids_0 rhss_0)
                                 (let ((body_0 (let ((d_1 (cdr p_1))) d_1)))
                                   (let ((ids_1 ids_0) (rhss_1 rhss_0))
                                     (values ids_1 rhss_1 body_0))))
                                (args
                                 (raise-binding-result-arity-error
                                  2
                                  args)))))))
                        (case-lambda
                         ((ids_0 rhss_0 body_0)
                          (let ((let-form_1 let-form_0))
                            (values let-form_1 ids_0 rhss_0 body_0)))
                         (args (raise-binding-result-arity-error 3 args)))))))
                 (case-lambda
                  ((let-form_0 ids_0 rhss_0 body_0)
                   (let ((rec?_0
                          (if (let ((tmp_0 (unwrap let-form_0)))
                                (if (if (eq? tmp_0 'letrec)
                                      #t
                                      (eq? tmp_0 'letrec*))
                                  #t
                                  #f))
                            (convert-mode-box-mutables?_0 convert-mode_0)
                            #f)))
                     (let ((rhs-convert-mode_0
                            (convert-mode-non-tail_0 convert-mode_0)))
                       (let ((rhs-env_0
                              (if rec?_0
                                (add-args/unbox_0
                                 env_0
                                 ids_0
                                 mutables_0
                                 procz3
                                 convert-mode_0)
                                env_0)))
                         (call-with-values
                          (lambda ()
                            (begin
                              (letrec*
                               ((for-loop_0
                                 (|#%name|
                                  for-loop
                                  (lambda (rev-new-rhss_0
                                           free_1
                                           lifts_1
                                           lst_0
                                           lst_1)
                                    (begin
                                      (if (if (pair? lst_0) (pair? lst_1) #f)
                                        (let ((id_0 (unsafe-car lst_0)))
                                          (let ((rest_0 (unsafe-cdr lst_0)))
                                            (let ((rhs_0 (unsafe-car lst_1)))
                                              (let ((rest_1
                                                     (unsafe-cdr lst_1)))
                                                (call-with-values
                                                 (lambda ()
                                                   (call-with-values
                                                    (lambda ()
                                                      (let ((self-env_0
                                                             (if rec?_0
                                                               (add-self_0
                                                                rhs-env_0
                                                                mutables_0
                                                                id_0)
                                                               rhs-env_0)))
                                                        (call-with-values
                                                         (lambda ()
                                                           (jitify-expr_0
                                                            rhs_0
                                                            self-env_0
                                                            mutables_0
                                                            free_1
                                                            lifts_1
                                                            rhs-convert-mode_0
                                                            id_0
                                                            in-name_0))
                                                         (case-lambda
                                                          ((new-rhs_0
                                                            rhs-free_0
                                                            rhs-lifts_0)
                                                           (values
                                                            (cons
                                                             new-rhs_0
                                                             rev-new-rhss_0)
                                                            rhs-free_0
                                                            rhs-lifts_0))
                                                          (args
                                                           (raise-binding-result-arity-error
                                                            3
                                                            args))))))
                                                    (case-lambda
                                                     ((rev-new-rhss_1
                                                       free_2
                                                       lifts_2)
                                                      (values
                                                       rev-new-rhss_1
                                                       free_2
                                                       lifts_2))
                                                     (args
                                                      (raise-binding-result-arity-error
                                                       3
                                                       args)))))
                                                 (case-lambda
                                                  ((rev-new-rhss_1
                                                    free_2
                                                    lifts_2)
                                                   (for-loop_0
                                                    rev-new-rhss_1
                                                    free_2
                                                    lifts_2
                                                    rest_0
                                                    rest_1))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    3
                                                    args))))))))
                                        (values
                                         rev-new-rhss_0
                                         free_1
                                         lifts_1)))))))
                               (for-loop_0
                                '()
                                hash2610
                                lifts_0
                                ids_0
                                rhss_0))))
                          (case-lambda
                           ((rev-new-rhss_0 rhs-free_0 rhs-lifts_0)
                            (let ((local-env_0
                                   (add-args/unbox_0
                                    env_0
                                    ids_0
                                    mutables_0
                                    (lambda (var_0)
                                      (if rec?_0
                                        (hash-ref rhs-free_0 var_0 #f)
                                        #f))
                                    convert-mode_0)))
                              (call-with-values
                               (lambda ()
                                 (jitify-body_0
                                  body_0
                                  local-env_0
                                  mutables_0
                                  (union-free_0 free_0 rhs-free_0)
                                  rhs-lifts_0
                                  convert-mode_0
                                  name_0
                                  in-name_0))
                               (case-lambda
                                ((new-body_0 new-free_0 new-lifts_0)
                                 (let ((new-v_0
                                        (if (not rec?_0)
                                          (list*
                                           let-form_0
                                           (reverse$1
                                            (let ((lst_0
                                                   (reverse$1 rev-new-rhss_0)))
                                              (begin
                                                (letrec*
                                                 ((for-loop_0
                                                   (|#%name|
                                                    for-loop
                                                    (lambda (fold-var_0
                                                             lst_1
                                                             lst_2)
                                                      (begin
                                                        (if (if (pair? lst_1)
                                                              (pair? lst_2)
                                                              #f)
                                                          (let ((id_0
                                                                 (unsafe-car
                                                                  lst_1)))
                                                            (let ((rest_0
                                                                   (unsafe-cdr
                                                                    lst_1)))
                                                              (let ((new-rhs_0
                                                                     (unsafe-car
                                                                      lst_2)))
                                                                (let ((rest_1
                                                                       (unsafe-cdr
                                                                        lst_2)))
                                                                  (let ((fold-var_1
                                                                         (let ((fold-var_1
                                                                                (cons
                                                                                 (list
                                                                                  id_0
                                                                                  (if (if (convert-mode-box-mutables?_0
                                                                                           convert-mode_0)
                                                                                        (hash-ref
                                                                                         mutables_0
                                                                                         (unwrap
                                                                                          id_0)
                                                                                         #f)
                                                                                        #f)
                                                                                    (list
                                                                                     'box
                                                                                     new-rhs_0)
                                                                                    new-rhs_0))
                                                                                 fold-var_0)))
                                                                           (values
                                                                            fold-var_1))))
                                                                    (for-loop_0
                                                                     fold-var_1
                                                                     rest_0
                                                                     rest_1))))))
                                                          fold-var_0))))))
                                                 (for-loop_0
                                                  null
                                                  ids_0
                                                  lst_0)))))
                                           new-body_0)
                                          (let ((app_0
                                                 (reverse$1
                                                  (begin
                                                    (letrec*
                                                     ((for-loop_0
                                                       (|#%name|
                                                        for-loop
                                                        (lambda (fold-var_0
                                                                 lst_0)
                                                          (begin
                                                            (if (pair? lst_0)
                                                              (let ((id_0
                                                                     (unsafe-car
                                                                      lst_0)))
                                                                (let ((rest_0
                                                                       (unsafe-cdr
                                                                        lst_0)))
                                                                  (let ((fold-var_1
                                                                         (if (hash-ref
                                                                              rhs-free_0
                                                                              (unwrap
                                                                               id_0)
                                                                              #f)
                                                                           (let ((fold-var_1
                                                                                  (cons
                                                                                   (list*
                                                                                    id_0
                                                                                    '((box
                                                                                       unsafe-undefined)))
                                                                                   fold-var_0)))
                                                                             (values
                                                                              fold-var_1))
                                                                           fold-var_0)))
                                                                    (for-loop_0
                                                                     fold-var_1
                                                                     rest_0))))
                                                              fold-var_0))))))
                                                     (for-loop_0
                                                      null
                                                      ids_0))))))
                                            (list
                                             'let
                                             app_0
                                             (let ((lst_0 (reverse$1 ids_0)))
                                               (begin
                                                 (letrec*
                                                  ((for-loop_0
                                                    (|#%name|
                                                     for-loop
                                                     (lambda (body_1
                                                              lst_1
                                                              lst_2)
                                                       (begin
                                                         (if (if (pair? lst_1)
                                                               (pair? lst_2)
                                                               #f)
                                                           (let ((id_0
                                                                  (unsafe-car
                                                                   lst_1)))
                                                             (let ((rest_0
                                                                    (unsafe-cdr
                                                                     lst_1)))
                                                               (let ((new-rhs_0
                                                                      (unsafe-car
                                                                       lst_2)))
                                                                 (let ((rest_1
                                                                        (unsafe-cdr
                                                                         lst_2)))
                                                                   (let ((body_2
                                                                          (let ((body_2
                                                                                 (if (hash-ref
                                                                                      rhs-free_0
                                                                                      (unwrap
                                                                                       id_0)
                                                                                      #f)
                                                                                   (let ((e_0
                                                                                          (list
                                                                                           'set-box*!
                                                                                           id_0
                                                                                           new-rhs_0)))
                                                                                     (let ((hd_0
                                                                                            (let ((p_0
                                                                                                   (unwrap
                                                                                                    body_1)))
                                                                                              (if (pair?
                                                                                                   p_0)
                                                                                                (unwrap
                                                                                                 (car
                                                                                                  p_0))
                                                                                                #f))))
                                                                                       (if (if (eq?
                                                                                                'begin
                                                                                                hd_0)
                                                                                             #t
                                                                                             #f)
                                                                                         (let ((es_0
                                                                                                (let ((d_0
                                                                                                       (cdr
                                                                                                        (unwrap
                                                                                                         body_1))))
                                                                                                  d_0)))
                                                                                           (list*
                                                                                            'begin
                                                                                            e_0
                                                                                            es_0))
                                                                                         (list
                                                                                          'begin
                                                                                          e_0
                                                                                          body_1))))
                                                                                   (list
                                                                                    'let
                                                                                    (list
                                                                                     (if (hash-ref
                                                                                          mutables_0
                                                                                          (unwrap
                                                                                           id_0)
                                                                                          #f)
                                                                                       (list
                                                                                        id_0
                                                                                        (list
                                                                                         'box
                                                                                         new-rhs_0))
                                                                                       (list
                                                                                        id_0
                                                                                        new-rhs_0)))
                                                                                    body_1))))
                                                                            (values
                                                                             body_2))))
                                                                     (for-loop_0
                                                                      body_2
                                                                      rest_0
                                                                      rest_1))))))
                                                           body_1))))))
                                                  (for-loop_0
                                                   (body->expr_0 new-body_0)
                                                   lst_0
                                                   rev-new-rhss_0)))))))))
                                   (let ((app_0 (reannotate v_1 new-v_0)))
                                     (values
                                      app_0
                                      (remove-args_0 new-free_0 ids_0)
                                      new-lifts_0))))
                                (args
                                 (raise-binding-result-arity-error 3 args))))))
                           (args
                            (raise-binding-result-arity-error 3 args))))))))
                  (args (raise-binding-result-arity-error 4 args))))
                (error 'match "failed ~e" v_1))))))
        (mutable-box-bindings_0
         (|#%name|
          mutable-box-bindings
          (lambda (args_0 mutables_0 convert-mode_0 body_0)
            (begin
              (if (convert-mode-box-mutables?_0 convert-mode_0)
                (let ((bindings_0 (loop_4 mutables_0 args_0)))
                  (if (null? bindings_0)
                    body_0
                    (list (list* 'let bindings_0 body_0))))
                body_0)))))
        (plain-add-args_1
         (|#%name|
          plain-add-args
          (case-lambda
           ((env_0 args_0)
            (begin (plain-add-args_0 plain-add-args_1 env_0 args_0 #t)))
           ((env_0 args_0 replace?3_0)
            (plain-add-args_0 plain-add-args_1 env_0 args_0 replace?3_0)))))
        (add-args_0
         (|#%name|
          add-args
          (lambda (env_0 args_0 mutables_0 convert-mode_0)
            (begin
              (if (let ((p_0 (unwrap args_0))) (if (pair? p_0) #t #f))
                (call-with-values
                 (lambda ()
                   (let ((p_0 (unwrap args_0)))
                     (let ((id_0 (let ((a_0 (car p_0))) a_0)))
                       (let ((args_1 (let ((d_0 (cdr p_0))) d_0)))
                         (let ((id_1 id_0)) (values id_1 args_1))))))
                 (case-lambda
                  ((id_0 args_1)
                   (add-args_0
                    (add-one_1
                     convert-mode-box-mutables?_0
                     convert-mode_0
                     env_0
                     mutables_0
                     id_0)
                    args_1
                    mutables_0
                    convert-mode_0))
                  (args (raise-binding-result-arity-error 2 args))))
                (if (let ((app_0 (unwrap '()))) (eq? app_0 (unwrap args_0)))
                  env_0
                  (add-one_1
                   convert-mode-box-mutables?_0
                   convert-mode_0
                   env_0
                   mutables_0
                   args_0)))))))
        (add-args/unbox_0
         (|#%name|
          add-args/unbox
          (lambda (env_0 args_0 mutables_0 var-rec?_0 convert-mode_0)
            (begin
              (if (let ((p_0 (unwrap args_0))) (if (pair? p_0) #t #f))
                (call-with-values
                 (lambda ()
                   (let ((p_0 (unwrap args_0)))
                     (let ((id_0 (let ((a_0 (car p_0))) a_0)))
                       (let ((args_1 (let ((d_0 (cdr p_0))) d_0)))
                         (let ((id_1 id_0)) (values id_1 args_1))))))
                 (case-lambda
                  ((id_0 args_1)
                   (add-args/unbox_0
                    (add-one_2
                     convert-mode-box-mutables?_0
                     convert-mode_0
                     env_0
                     mutables_0
                     var-rec?_0
                     id_0)
                    args_1
                    mutables_0
                    var-rec?_0
                    convert-mode_0))
                  (args (raise-binding-result-arity-error 2 args))))
                (if (let ((app_0 (unwrap '()))) (eq? app_0 (unwrap args_0)))
                  env_0
                  (add-one_2
                   convert-mode-box-mutables?_0
                   convert-mode_0
                   env_0
                   mutables_0
                   var-rec?_0
                   args_0)))))))
        (remove-args_0
         (|#%name|
          remove-args
          (lambda (env_0 args_0)
            (begin
              (if (let ((p_0 (unwrap args_0))) (if (pair? p_0) #t #f))
                (call-with-values
                 (lambda ()
                   (let ((p_0 (unwrap args_0)))
                     (let ((id_0 (let ((a_0 (car p_0))) a_0)))
                       (let ((args_1 (let ((d_0 (cdr p_0))) d_0)))
                         (let ((id_1 id_0)) (values id_1 args_1))))))
                 (case-lambda
                  ((id_0 args_1)
                   (remove-args_0 (hash-remove env_0 (unwrap id_0)) args_1))
                  (args (raise-binding-result-arity-error 2 args))))
                (if (let ((app_0 (unwrap '()))) (eq? app_0 (unwrap args_0)))
                  env_0
                  (hash-remove env_0 (unwrap args_0))))))))
        (add-bindings_0
         (|#%name|
          add-bindings
          (lambda (env_0 bindings_0)
            (begin
              (if (if (wrap-list? bindings_0)
                    (begin
                      (letrec*
                       ((for-loop_0
                         (|#%name|
                          for-loop
                          (lambda (result_0 lst_0)
                            (begin
                              (if (not (null? (unwrap lst_0)))
                                (let ((v_1
                                       (if (pair? (unwrap lst_0))
                                         (wrap-car lst_0)
                                         lst_0)))
                                  (let ((rest_0
                                         (if (pair? (unwrap lst_0))
                                           (wrap-cdr lst_0)
                                           null)))
                                    (let ((v_2 v_1))
                                      (let ((result_1
                                             (let ((result_1
                                                    (let ((p_0 (unwrap v_2)))
                                                      (if (pair? p_0)
                                                        (let ((a_0 (cdr p_0)))
                                                          (let ((p_1
                                                                 (unwrap a_0)))
                                                            (if (pair? p_1)
                                                              (let ((a_1
                                                                     (cdr
                                                                      p_1)))
                                                                (let ((app_0
                                                                       (unwrap
                                                                        '())))
                                                                  (eq?
                                                                   app_0
                                                                   (unwrap
                                                                    a_1))))
                                                              #f)))
                                                        #f))))
                                               (values result_1))))
                                        (if (if (not
                                                 (let ((x_0 (list v_2)))
                                                   (not result_1)))
                                              #t
                                              #f)
                                          (for-loop_0 result_1 rest_0)
                                          result_1)))))
                                result_0))))))
                       (for-loop_0 #t bindings_0)))
                    #f)
                (let ((ids_0
                       (let ((ids_0
                              (begin
                                (letrec*
                                 ((for-loop_0
                                   (|#%name|
                                    for-loop
                                    (lambda (ids_0 lst_0)
                                      (begin
                                        (if (not (null? (unwrap lst_0)))
                                          (let ((v_1
                                                 (if (pair? (unwrap lst_0))
                                                   (wrap-car lst_0)
                                                   lst_0)))
                                            (let ((rest_0
                                                   (if (pair? (unwrap lst_0))
                                                     (wrap-cdr lst_0)
                                                     null)))
                                              (let ((v_2 v_1))
                                                (let ((ids_1
                                                       (let ((ids_1
                                                              (let ((ids12_0
                                                                     (let ((a_0
                                                                            (car
                                                                             (unwrap
                                                                              v_2))))
                                                                       a_0)))
                                                                (cons
                                                                 ids12_0
                                                                 ids_0))))
                                                         (values ids_1))))
                                                  (for-loop_0 ids_1 rest_0)))))
                                          ids_0))))))
                                 (for-loop_0 null bindings_0)))))
                         (reverse$1 ids_0))))
                  (begin
                    (letrec*
                     ((for-loop_0
                       (|#%name|
                        for-loop
                        (lambda (env_1 lst_0)
                          (begin
                            (if (pair? lst_0)
                              (let ((id_0 (unsafe-car lst_0)))
                                (let ((rest_0 (unsafe-cdr lst_0)))
                                  (let ((env_2
                                         (let ((env_2
                                                (plain-add-args_1 env_1 id_0)))
                                           (values env_2))))
                                    (for-loop_0 env_2 rest_0))))
                              env_1))))))
                     (for-loop_0 env_0 ids_0))))
                (error 'match "failed ~e" bindings_0))))))
        (add-self_0 procz4)
        (activate-self_0
         (|#%name|
          activate-self
          (lambda (env_0 name_0)
            (begin
              (if name_0
                (let ((u_0 (unwrap name_0)))
                  (let ((new-m_0
                         (let ((v_1 (hash-ref env_0 u_0 #f)))
                           (let ((hd_0
                                  (let ((p_0 (unwrap v_1)))
                                    (if (pair? p_0) (unwrap (car p_0)) #f))))
                             (if (if (eq? 'self hd_0)
                                   (let ((a_0 (cdr (unwrap v_1))))
                                     (let ((p_0 (unwrap a_0)))
                                       (if (pair? p_0)
                                         (if (let ((a_1 (car p_0)))
                                               (let ((a_2 kw2846))
                                                 (let ((app_0 (unwrap a_2)))
                                                   (eq? app_0 (unwrap a_1)))))
                                           (let ((a_1 (cdr p_0)))
                                             (let ((app_0 (unwrap '())))
                                               (eq? app_0 (unwrap a_1))))
                                           #f)
                                         #f)))
                                   #f)
                               (list 'self (genself_0) name_0)
                               (if (if (eq? 'self hd_0)
                                     (let ((a_0 (cdr (unwrap v_1))))
                                       (let ((p_0 (unwrap a_0)))
                                         (if (pair? p_0)
                                           (if (let ((a_1 (car p_0)))
                                                 (let ((p_1 (unwrap a_1)))
                                                   (if (pair? p_1)
                                                     (if (let ((a_2 (car p_1)))
                                                           (let ((app_0
                                                                  (unwrap
                                                                   'variable-ref)))
                                                             (eq?
                                                              app_0
                                                              (unwrap a_2))))
                                                       (let ((a_2 (cdr p_1)))
                                                         (let ((p_2
                                                                (unwrap a_2)))
                                                           (if (pair? p_2)
                                                             (let ((a_3
                                                                    (cdr p_2)))
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_3))))
                                                             #f)))
                                                       #f)
                                                     #f)))
                                             (let ((a_1 (cdr p_0)))
                                               (let ((app_0 (unwrap '())))
                                                 (eq? app_0 (unwrap a_1))))
                                             #f)
                                           #f)))
                                     #f)
                                 (let ((orig-id_0
                                        (let ((d_0 (cdr (unwrap v_1))))
                                          (let ((a_0 (car (unwrap d_0))))
                                            (let ((d_1 (cdr (unwrap a_0))))
                                              (let ((a_1 (car (unwrap d_1))))
                                                a_1))))))
                                   (list
                                    'self
                                    (list 'variable-ref orig-id_0)
                                    orig-id_0))
                                 (if (if (eq? 'self hd_0)
                                       (let ((a_0 (cdr (unwrap v_1))))
                                         (let ((p_0 (unwrap a_0)))
                                           (if (pair? p_0)
                                             (if (let ((a_1 (car p_0)))
                                                   (let ((p_1 (unwrap a_1)))
                                                     (if (pair? p_1)
                                                       (if (let ((a_2
                                                                  (car p_1)))
                                                             (let ((app_0
                                                                    (unwrap
                                                                     'unsafe-unbox*)))
                                                               (eq?
                                                                app_0
                                                                (unwrap a_2))))
                                                         (let ((a_2 (cdr p_1)))
                                                           (let ((p_2
                                                                  (unwrap
                                                                   a_2)))
                                                             (if (pair? p_2)
                                                               (let ((a_3
                                                                      (cdr
                                                                       p_2)))
                                                                 (let ((app_0
                                                                        (unwrap
                                                                         '())))
                                                                   (eq?
                                                                    app_0
                                                                    (unwrap
                                                                     a_3))))
                                                               #f)))
                                                         #f)
                                                       #f)))
                                               (let ((a_1 (cdr p_0)))
                                                 (let ((app_0 (unwrap '())))
                                                   (eq? app_0 (unwrap a_1))))
                                               #f)
                                             #f)))
                                       #f)
                                   (let ((orig-id_0
                                          (let ((d_0 (cdr (unwrap v_1))))
                                            (let ((a_0 (car (unwrap d_0))))
                                              (let ((d_1 (cdr (unwrap a_0))))
                                                (let ((a_1 (car (unwrap d_1))))
                                                  a_1))))))
                                     (list
                                      'self
                                      (list 'unsafe-unbox* (genself_0))
                                      orig-id_0))
                                   #f)))))))
                    (if new-m_0 (hash-set env_0 u_0 new-m_0) env_0)))
                env_0)))))
        (deactivate-self_0 procz5)
        (argss->arity-mask_0
         (|#%name|
          argss->arity-mask
          (lambda (argss_0)
            (begin
              (begin
                (letrec*
                 ((for-loop_0
                   (|#%name|
                    for-loop
                    (lambda (mask_0 lst_0)
                      (begin
                        (if (pair? lst_0)
                          (let ((args_0 (unsafe-car lst_0)))
                            (let ((rest_0 (unsafe-cdr lst_0)))
                              (let ((mask_1
                                     (let ((mask_1
                                            (bitwise-ior
                                             mask_0
                                             (letrec*
                                              ((loop_5
                                                (|#%name|
                                                 loop
                                                 (lambda (args_1 count_0)
                                                   (begin
                                                     (if (null?
                                                          (unwrap args_1))
                                                       (arithmetic-shift
                                                        1
                                                        count_0)
                                                       (if (pair?
                                                            (unwrap args_1))
                                                         (let ((app_0
                                                                (wrap-cdr
                                                                 args_1)))
                                                           (loop_5
                                                            app_0
                                                            (add1 count_0)))
                                                         (bitwise-xor
                                                          -1
                                                          (sub1
                                                           (arithmetic-shift
                                                            1
                                                            count_0))))))))))
                                              (loop_5 args_0 0)))))
                                       (values mask_1))))
                                (for-loop_0 mask_1 rest_0))))
                          mask_0))))))
                 (for-loop_0 0 argss_0)))))))
        (de-dot_0
         (|#%name|
          de-dot
          (lambda (args_0)
            (begin
              (if (pair? (unwrap args_0))
                (let ((app_0 (wrap-car args_0)))
                  (cons app_0 (de-dot_0 (wrap-cdr args_0))))
                (list args_0))))))
        (union-free_0
         (|#%name|
          union-free
          (lambda (a_0 b_0)
            (begin
              (if (let ((app_0 (hash-count b_0))) (< app_0 (hash-count a_0)))
                (union-free_0 b_0 a_0)
                (begin
                  (letrec*
                   ((for-loop_0
                     (|#%name|
                      for-loop
                      (lambda (b_1 i_0)
                        (begin
                          (if i_0
                            (call-with-values
                             (lambda () (hash-iterate-key+value a_0 i_0))
                             (case-lambda
                              ((k_0 v_1)
                               (let ((b_2
                                      (let ((b_2 (hash-set b_1 k_0 v_1)))
                                        (values b_2))))
                                 (for-loop_0 b_2 (hash-iterate-next a_0 i_0))))
                              (args
                               (raise-binding-result-arity-error 2 args))))
                            b_1))))))
                   (for-loop_0 b_0 (hash-iterate-first a_0)))))))))
        (body->expr_0 procz6)
        (find-mutable_0
         (|#%name|
          find-mutable
          (lambda (env_0 v_1 accum_0)
            (begin
              (let ((hd_0
                     (let ((p_0 (unwrap v_1)))
                       (if (pair? p_0) (unwrap (car p_0)) #f))))
                (if (if (eq? 'lambda hd_0)
                      (let ((a_0 (cdr (unwrap v_1))))
                        (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
                      #f)
                  (call-with-values
                   (lambda ()
                     (let ((d_0 (cdr (unwrap v_1))))
                       (let ((p_0 (unwrap d_0)))
                         (let ((args_0 (let ((a_0 (car p_0))) a_0)))
                           (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                             (let ((args_1 args_0))
                               (values args_1 body_0)))))))
                   (case-lambda
                    ((args_0 body_0)
                     (body-find-mutable_0
                      (plain-add-args_1 env_0 args_0)
                      body_0
                      accum_0))
                    (args (raise-binding-result-arity-error 2 args))))
                  (if (if (eq? 'case-lambda hd_0)
                        (let ((a_0 (cdr (unwrap v_1))))
                          (if (wrap-list? a_0)
                            (begin
                              (letrec*
                               ((for-loop_0
                                 (|#%name|
                                  for-loop
                                  (lambda (result_0 lst_0)
                                    (begin
                                      (if (not (null? (unwrap lst_0)))
                                        (let ((v_2
                                               (if (pair? (unwrap lst_0))
                                                 (wrap-car lst_0)
                                                 lst_0)))
                                          (let ((rest_0
                                                 (if (pair? (unwrap lst_0))
                                                   (wrap-cdr lst_0)
                                                   null)))
                                            (let ((v_3 v_2))
                                              (let ((result_1
                                                     (let ((result_1
                                                            (let ((p_0
                                                                   (unwrap
                                                                    v_3)))
                                                              (if (pair? p_0)
                                                                #t
                                                                #f))))
                                                       (values result_1))))
                                                (if (if (not
                                                         (let ((x_0
                                                                (list v_3)))
                                                           (not result_1)))
                                                      #t
                                                      #f)
                                                  (for-loop_0 result_1 rest_0)
                                                  result_1)))))
                                        result_0))))))
                               (for-loop_0 #t a_0)))
                            #f))
                        #f)
                    (call-with-values
                     (lambda ()
                       (let ((d_0 (cdr (unwrap v_1))))
                         (call-with-values
                          (lambda ()
                            (begin
                              (letrec*
                               ((for-loop_0
                                 (|#%name|
                                  for-loop
                                  (lambda (argss_0 bodys_0 lst_0)
                                    (begin
                                      (if (not (null? (unwrap lst_0)))
                                        (let ((v_2
                                               (if (pair? (unwrap lst_0))
                                                 (wrap-car lst_0)
                                                 lst_0)))
                                          (let ((rest_0
                                                 (if (pair? (unwrap lst_0))
                                                   (wrap-cdr lst_0)
                                                   null)))
                                            (let ((v_3 v_2))
                                              (call-with-values
                                               (lambda ()
                                                 (call-with-values
                                                  (lambda ()
                                                    (call-with-values
                                                     (lambda ()
                                                       (let ((p_0
                                                              (unwrap v_3)))
                                                         (let ((argss_1
                                                                (let ((a_0
                                                                       (car
                                                                        p_0)))
                                                                  a_0)))
                                                           (let ((bodys_1
                                                                  (let ((d_1
                                                                         (cdr
                                                                          p_0)))
                                                                    d_1)))
                                                             (let ((argss_2
                                                                    argss_1))
                                                               (values
                                                                argss_2
                                                                bodys_1))))))
                                                     (case-lambda
                                                      ((argss13_0 bodys14_0)
                                                       (values
                                                        (cons
                                                         argss13_0
                                                         argss_0)
                                                        (cons
                                                         bodys14_0
                                                         bodys_0)))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args)))))
                                                  (case-lambda
                                                   ((argss_1 bodys_1)
                                                    (values argss_1 bodys_1))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args)))))
                                               (case-lambda
                                                ((argss_1 bodys_1)
                                                 (for-loop_0
                                                  argss_1
                                                  bodys_1
                                                  rest_0))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  2
                                                  args)))))))
                                        (values argss_0 bodys_0)))))))
                               (for-loop_0 null null d_0))))
                          (case-lambda
                           ((argss_0 bodys_0)
                            (let ((app_0 (reverse$1 argss_0)))
                              (values app_0 (reverse$1 bodys_0))))
                           (args (raise-binding-result-arity-error 2 args))))))
                     (case-lambda
                      ((argss_0 bodys_0)
                       (begin
                         (letrec*
                          ((for-loop_0
                            (|#%name|
                             for-loop
                             (lambda (accum_1 lst_0 lst_1)
                               (begin
                                 (if (if (pair? lst_0) (pair? lst_1) #f)
                                   (let ((args_0 (unsafe-car lst_0)))
                                     (let ((rest_0 (unsafe-cdr lst_0)))
                                       (let ((body_0 (unsafe-car lst_1)))
                                         (let ((rest_1 (unsafe-cdr lst_1)))
                                           (let ((accum_2
                                                  (let ((accum_2
                                                         (body-find-mutable_0
                                                          (plain-add-args_1
                                                           env_0
                                                           args_0)
                                                          body_0
                                                          accum_1)))
                                                    (values accum_2))))
                                             (for-loop_0
                                              accum_2
                                              rest_0
                                              rest_1))))))
                                   accum_1))))))
                          (for-loop_0 accum_0 argss_0 bodys_0))))
                      (args (raise-binding-result-arity-error 2 args))))
                    (if (if (eq? 'let hd_0) #t #f)
                      (find-mutable-in-let_0 env_0 v_1 accum_0)
                      (if (if (eq? 'letrec hd_0) #t #f)
                        (find-mutable-in-let_0 env_0 v_1 accum_0)
                        (if (if (eq? 'letrec* hd_0) #t #f)
                          (find-mutable-in-let_0 env_0 v_1 accum_0)
                          (if (if (eq? 'begin hd_0) #t #f)
                            (let ((vs_0 (let ((d_0 (cdr (unwrap v_1)))) d_0)))
                              (body-find-mutable_0 env_0 vs_0 accum_0))
                            (if (if (eq? 'begin0 hd_0) #t #f)
                              (let ((vs_0
                                     (let ((d_0 (cdr (unwrap v_1)))) d_0)))
                                (body-find-mutable_0 env_0 vs_0 accum_0))
                              (if (if (eq? 'if hd_0)
                                    (let ((a_0 (cdr (unwrap v_1))))
                                      (let ((p_0 (unwrap a_0)))
                                        (if (pair? p_0)
                                          (let ((a_1 (cdr p_0)))
                                            (let ((p_1 (unwrap a_1)))
                                              (if (pair? p_1)
                                                (let ((a_2 (cdr p_1)))
                                                  (let ((p_2 (unwrap a_2)))
                                                    (if (pair? p_2)
                                                      (let ((a_3 (cdr p_2)))
                                                        (let ((app_0
                                                               (unwrap '())))
                                                          (eq?
                                                           app_0
                                                           (unwrap a_3))))
                                                      #f)))
                                                #f)))
                                          #f)))
                                    #f)
                                (call-with-values
                                 (lambda ()
                                   (let ((d_0 (cdr (unwrap v_1))))
                                     (let ((p_0 (unwrap d_0)))
                                       (let ((tst_0
                                              (let ((a_0 (car p_0))) a_0)))
                                         (call-with-values
                                          (lambda ()
                                            (let ((d_1 (cdr p_0)))
                                              (let ((p_1 (unwrap d_1)))
                                                (let ((thn_0
                                                       (let ((a_0 (car p_1)))
                                                         a_0)))
                                                  (let ((els_0
                                                         (let ((d_2 (cdr p_1)))
                                                           (let ((a_0
                                                                  (car
                                                                   (unwrap
                                                                    d_2))))
                                                             a_0))))
                                                    (let ((thn_1 thn_0))
                                                      (values
                                                       thn_1
                                                       els_0)))))))
                                          (case-lambda
                                           ((thn_0 els_0)
                                            (let ((tst_1 tst_0))
                                              (values tst_1 thn_0 els_0)))
                                           (args
                                            (raise-binding-result-arity-error
                                             2
                                             args))))))))
                                 (case-lambda
                                  ((tst_0 thn_0 els_0)
                                   (find-mutable_0
                                    env_0
                                    tst_0
                                    (find-mutable_0
                                     env_0
                                     thn_0
                                     (find-mutable_0 env_0 els_0 accum_0))))
                                  (args
                                   (raise-binding-result-arity-error 3 args))))
                                (if (if (eq? 'with-continuation-mark* hd_0)
                                      (let ((a_0 (cdr (unwrap v_1))))
                                        (let ((p_0 (unwrap a_0)))
                                          (if (pair? p_0)
                                            (let ((a_1 (cdr p_0)))
                                              (let ((p_1 (unwrap a_1)))
                                                (if (pair? p_1)
                                                  (let ((a_2 (cdr p_1)))
                                                    (let ((p_2 (unwrap a_2)))
                                                      (if (pair? p_2)
                                                        (let ((a_3 (cdr p_2)))
                                                          (let ((p_3
                                                                 (unwrap a_3)))
                                                            (if (pair? p_3)
                                                              (let ((a_4
                                                                     (cdr
                                                                      p_3)))
                                                                (let ((app_0
                                                                       (unwrap
                                                                        '())))
                                                                  (eq?
                                                                   app_0
                                                                   (unwrap
                                                                    a_4))))
                                                              #f)))
                                                        #f)))
                                                  #f)))
                                            #f)))
                                      #f)
                                  (call-with-values
                                   (lambda ()
                                     (let ((d_0 (cdr (unwrap v_1))))
                                       (let ((p_0 (unwrap d_0)))
                                         (let ((mode_0
                                                (let ((a_0 (car p_0))) a_0)))
                                           (call-with-values
                                            (lambda ()
                                              (let ((d_1 (cdr p_0)))
                                                (let ((p_1 (unwrap d_1)))
                                                  (let ((key_0
                                                         (let ((a_0 (car p_1)))
                                                           a_0)))
                                                    (call-with-values
                                                     (lambda ()
                                                       (let ((d_2 (cdr p_1)))
                                                         (let ((p_2
                                                                (unwrap d_2)))
                                                           (let ((val_0
                                                                  (let ((a_0
                                                                         (car
                                                                          p_2)))
                                                                    a_0)))
                                                             (let ((body_0
                                                                    (let ((d_3
                                                                           (cdr
                                                                            p_2)))
                                                                      (let ((a_0
                                                                             (car
                                                                              (unwrap
                                                                               d_3))))
                                                                        a_0))))
                                                               (let ((val_1
                                                                      val_0))
                                                                 (values
                                                                  val_1
                                                                  body_0)))))))
                                                     (case-lambda
                                                      ((val_0 body_0)
                                                       (let ((key_1 key_0))
                                                         (values
                                                          key_1
                                                          val_0
                                                          body_0)))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args))))))))
                                            (case-lambda
                                             ((key_0 val_0 body_0)
                                              (let ((mode_1 mode_0))
                                                (values
                                                 mode_1
                                                 key_0
                                                 val_0
                                                 body_0)))
                                             (args
                                              (raise-binding-result-arity-error
                                               3
                                               args))))))))
                                   (case-lambda
                                    ((mode_0 key_0 val_0 body_0)
                                     (find-mutable_0
                                      env_0
                                      key_0
                                      (find-mutable_0
                                       env_0
                                       val_0
                                       (find-mutable_0 env_0 body_0 accum_0))))
                                    (args
                                     (raise-binding-result-arity-error
                                      4
                                      args))))
                                  (if (if (eq? 'quote hd_0)
                                        (let ((a_0 (cdr (unwrap v_1))))
                                          (let ((p_0 (unwrap a_0)))
                                            (if (pair? p_0)
                                              (let ((a_1 (cdr p_0)))
                                                (let ((app_0 (unwrap '())))
                                                  (eq? app_0 (unwrap a_1))))
                                              #f)))
                                        #f)
                                    accum_0
                                    (if (if (eq? 'set! hd_0)
                                          (let ((a_0 (cdr (unwrap v_1))))
                                            (let ((p_0 (unwrap a_0)))
                                              (if (pair? p_0)
                                                (let ((a_1 (cdr p_0)))
                                                  (let ((p_1 (unwrap a_1)))
                                                    (if (pair? p_1)
                                                      (let ((a_2 (cdr p_1)))
                                                        (let ((app_0
                                                               (unwrap '())))
                                                          (eq?
                                                           app_0
                                                           (unwrap a_2))))
                                                      #f)))
                                                #f)))
                                          #f)
                                      (call-with-values
                                       (lambda ()
                                         (let ((d_0 (cdr (unwrap v_1))))
                                           (let ((p_0 (unwrap d_0)))
                                             (let ((var_0
                                                    (let ((a_0 (car p_0)))
                                                      a_0)))
                                               (let ((rhs_0
                                                      (let ((d_1 (cdr p_0)))
                                                        (let ((a_0
                                                               (car
                                                                (unwrap d_1))))
                                                          a_0))))
                                                 (let ((var_1 var_0))
                                                   (values var_1 rhs_0)))))))
                                       (case-lambda
                                        ((var_0 rhs_0)
                                         (let ((id_0 (unwrap var_0)))
                                           (find-mutable_0
                                            env_0
                                            rhs_0
                                            (if (hash-ref env_0 id_0 #f)
                                              (hash-set accum_0 id_0 #t)
                                              accum_0))))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))
                                      (if (wrap-list? v_1)
                                        (body-find-mutable_0 env_0 v_1 accum_0)
                                        accum_0)))))))))))))))))
        (body-find-mutable_0
         (|#%name|
          body-find-mutable
          (lambda (env_0 body_0 accum_0)
            (begin
              (begin
                (letrec*
                 ((for-loop_0
                   (|#%name|
                    for-loop
                    (lambda (accum_1 lst_0)
                      (begin
                        (if (not (null? (unwrap lst_0)))
                          (let ((v_1
                                 (if (pair? (unwrap lst_0))
                                   (wrap-car lst_0)
                                   lst_0)))
                            (let ((rest_0
                                   (if (pair? (unwrap lst_0))
                                     (wrap-cdr lst_0)
                                     null)))
                              (let ((v_2 v_1))
                                (let ((accum_2
                                       (let ((accum_2
                                              (find-mutable_0
                                               env_0
                                               v_2
                                               accum_1)))
                                         (values accum_2))))
                                  (for-loop_0 accum_2 rest_0)))))
                          accum_1))))))
                 (for-loop_0 accum_0 body_0)))))))
        (find-mutable-in-let_0
         (|#%name|
          find-mutable-in-let
          (lambda (env_0 v_1 accum_0)
            (begin
              (if (let ((p_0 (unwrap v_1)))
                    (if (pair? p_0)
                      (let ((a_0 (cdr p_0)))
                        (let ((p_1 (unwrap a_0)))
                          (if (pair? p_1)
                            (if (let ((a_1 (car p_1)))
                                  (if (wrap-list? a_1)
                                    (begin
                                      (letrec*
                                       ((for-loop_0
                                         (|#%name|
                                          for-loop
                                          (lambda (result_0 lst_0)
                                            (begin
                                              (if (not (null? (unwrap lst_0)))
                                                (let ((v_2
                                                       (if (pair?
                                                            (unwrap lst_0))
                                                         (wrap-car lst_0)
                                                         lst_0)))
                                                  (let ((rest_0
                                                         (if (pair?
                                                              (unwrap lst_0))
                                                           (wrap-cdr lst_0)
                                                           null)))
                                                    (let ((v_3 v_2))
                                                      (let ((result_1
                                                             (let ((result_1
                                                                    (let ((p_2
                                                                           (unwrap
                                                                            v_3)))
                                                                      (if (pair?
                                                                           p_2)
                                                                        (let ((a_2
                                                                               (cdr
                                                                                p_2)))
                                                                          (let ((p_3
                                                                                 (unwrap
                                                                                  a_2)))
                                                                            (if (pair?
                                                                                 p_3)
                                                                              (let ((a_3
                                                                                     (cdr
                                                                                      p_3)))
                                                                                (let ((app_0
                                                                                       (unwrap
                                                                                        '())))
                                                                                  (eq?
                                                                                   app_0
                                                                                   (unwrap
                                                                                    a_3))))
                                                                              #f)))
                                                                        #f))))
                                                               (values
                                                                result_1))))
                                                        (if (if (not
                                                                 (let ((x_0
                                                                        (list
                                                                         v_3)))
                                                                   (not
                                                                    result_1)))
                                                              #t
                                                              #f)
                                                          (for-loop_0
                                                           result_1
                                                           rest_0)
                                                          result_1)))))
                                                result_0))))))
                                       (for-loop_0 #t a_1)))
                                    #f))
                              #t
                              #f)
                            #f)))
                      #f))
                (call-with-values
                 (lambda ()
                   (let ((p_0 (unwrap v_1)))
                     (let ((let-form_0 (let ((a_0 (car p_0))) a_0)))
                       (call-with-values
                        (lambda ()
                          (let ((d_0 (cdr p_0)))
                            (let ((p_1 (unwrap d_0)))
                              (call-with-values
                               (lambda ()
                                 (let ((a_0 (car p_1)))
                                   (call-with-values
                                    (lambda ()
                                      (begin
                                        (letrec*
                                         ((for-loop_0
                                           (|#%name|
                                            for-loop
                                            (lambda (ids_0 rhss_0 lst_0)
                                              (begin
                                                (if (not
                                                     (null? (unwrap lst_0)))
                                                  (let ((v_2
                                                         (if (pair?
                                                              (unwrap lst_0))
                                                           (wrap-car lst_0)
                                                           lst_0)))
                                                    (let ((rest_0
                                                           (if (pair?
                                                                (unwrap lst_0))
                                                             (wrap-cdr lst_0)
                                                             null)))
                                                      (let ((v_3 v_2))
                                                        (call-with-values
                                                         (lambda ()
                                                           (call-with-values
                                                            (lambda ()
                                                              (call-with-values
                                                               (lambda ()
                                                                 (let ((p_2
                                                                        (unwrap
                                                                         v_3)))
                                                                   (let ((ids_1
                                                                          (let ((a_1
                                                                                 (car
                                                                                  p_2)))
                                                                            a_1)))
                                                                     (let ((rhss_1
                                                                            (let ((d_1
                                                                                   (cdr
                                                                                    p_2)))
                                                                              (let ((a_1
                                                                                     (car
                                                                                      (unwrap
                                                                                       d_1))))
                                                                                a_1))))
                                                                       (let ((ids_2
                                                                              ids_1))
                                                                         (values
                                                                          ids_2
                                                                          rhss_1))))))
                                                               (case-lambda
                                                                ((ids15_0
                                                                  rhss16_0)
                                                                 (values
                                                                  (cons
                                                                   ids15_0
                                                                   ids_0)
                                                                  (cons
                                                                   rhss16_0
                                                                   rhss_0)))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))
                                                            (case-lambda
                                                             ((ids_1 rhss_1)
                                                              (values
                                                               ids_1
                                                               rhss_1))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               2
                                                               args)))))
                                                         (case-lambda
                                                          ((ids_1 rhss_1)
                                                           (for-loop_0
                                                            ids_1
                                                            rhss_1
                                                            rest_0))
                                                          (args
                                                           (raise-binding-result-arity-error
                                                            2
                                                            args)))))))
                                                  (values ids_0 rhss_0)))))))
                                         (for-loop_0 null null a_0))))
                                    (case-lambda
                                     ((ids_0 rhss_0)
                                      (let ((app_0 (reverse$1 ids_0)))
                                        (values app_0 (reverse$1 rhss_0))))
                                     (args
                                      (raise-binding-result-arity-error
                                       2
                                       args))))))
                               (case-lambda
                                ((ids_0 rhss_0)
                                 (let ((body_0 (let ((d_1 (cdr p_1))) d_1)))
                                   (let ((ids_1 ids_0) (rhss_1 rhss_0))
                                     (values ids_1 rhss_1 body_0))))
                                (args
                                 (raise-binding-result-arity-error
                                  2
                                  args)))))))
                        (case-lambda
                         ((ids_0 rhss_0 body_0)
                          (let ((let-form_1 let-form_0))
                            (values let-form_1 ids_0 rhss_0 body_0)))
                         (args (raise-binding-result-arity-error 3 args)))))))
                 (case-lambda
                  ((let-form_0 ids_0 rhss_0 body_0)
                   (let ((local-env_0
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (env_1 lst_0)
                                  (begin
                                    (if (pair? lst_0)
                                      (let ((id_0 (unsafe-car lst_0)))
                                        (let ((rest_0 (unsafe-cdr lst_0)))
                                          (let ((env_2
                                                 (let ((env_2
                                                        (plain-add-args_1
                                                         env_1
                                                         id_0)))
                                                   (values env_2))))
                                            (for-loop_0 env_2 rest_0))))
                                      env_1))))))
                             (for-loop_0 env_0 ids_0)))))
                     (let ((rhs-env_0
                            (let ((tmp_0 (unwrap let-form_0)))
                              (if (if (eq? tmp_0 'letrec)
                                    #t
                                    (if (eq? tmp_0 'letrec*)
                                      #t
                                      (eq? tmp_0 'letrec*-values)))
                                local-env_0
                                env_0))))
                       (body-find-mutable_0
                        local-env_0
                        body_0
                        (begin
                          (letrec*
                           ((for-loop_0
                             (|#%name|
                              for-loop
                              (lambda (accum_1 lst_0 lst_1)
                                (begin
                                  (if (if (pair? lst_0) (pair? lst_1) #f)
                                    (let ((id_0 (unsafe-car lst_0)))
                                      (let ((rest_0 (unsafe-cdr lst_0)))
                                        (let ((rhs_0 (unsafe-car lst_1)))
                                          (let ((rest_1 (unsafe-cdr lst_1)))
                                            (let ((accum_2
                                                   (let ((accum_2
                                                          (find-mutable_0
                                                           rhs-env_0
                                                           rhs_0
                                                           accum_1)))
                                                     (values accum_2))))
                                              (for-loop_0
                                               accum_2
                                               rest_0
                                               rest_1))))))
                                    accum_1))))))
                           (for-loop_0 accum_0 ids_0 rhss_0)))))))
                  (args (raise-binding-result-arity-error 4 args))))
                (error 'match "failed ~e" v_1))))))
        (init-convert-mode_0
         (|#%name|
          init-convert-mode
          (lambda (v_1)
            (begin
              (if convert-size-threshold_0
                (convert-mode1.1 (record-sizes_0 v_1) #f #f #f)
                '(not-called . no-lift))))))
        (convert-mode-convert-lambda?_0
         (|#%name|
          convert-mode-convert-lambda?
          (lambda (cm_0 v_1)
            (begin
              (if (pair? cm_0)
                (eq? (car cm_0) 'not-called)
                (if (convert-mode-called? cm_0)
                  #f
                  (if (convert-mode-no-more-conversions? cm_0)
                    #f
                    (if (>=
                         (hash-ref (convert-mode-sizes cm_0) v_1)
                         convert-size-threshold_0)
                      #f
                      #t))))))))
        (convert-mode-lambda-body-mode_0
         (|#%name|
          convert-mode-lambda-body-mode
          (lambda (cm_0 convert?_0)
            (begin
              (if (convert-mode? cm_0)
                (if convert?_0
                  (convert-mode1.1 'not-needed #f need-lift?_0 #t)
                  (convert-mode-non-tail_0 cm_0))
                (if (let ((or-part_0 (not need-lift?_0)))
                      (if or-part_0
                        or-part_0
                        (if (eq? 'no-lift (cdr cm_0)) (not convert?_0) #f)))
                  '(not-called . no-lift)
                  '(not-called . lift)))))))
        (convert-mode-non-tail_0 procz7)
        (convert-mode-called_0 procz8)
        (convert-mode-box-mutables?_0 procz9)
        (convert-mode-need-lift?_0 procz10)
        (no-lifts_0 '(0))
        (no-lifts?_0 procz11)
        (lifts->datum_0 procz12)
        (add-lift_0 procz13)
        (record-sizes_0
         (|#%name|
          record-sizes
          (lambda (v_1)
            (begin
              (let ((sizes_0 (make-hasheq)))
                (begin (record-sizes!_0 v_1 sizes_0) sizes_0))))))
        (record-size!_0 procz14)
        (record-sizes!_0
         (|#%name|
          record-sizes!
          (lambda (v_1 sizes_0)
            (begin
              (let ((hd_0
                     (let ((p_0 (unwrap v_1)))
                       (if (pair? p_0) (unwrap (car p_0)) #f))))
                (if (if (eq? 'lambda hd_0)
                      (let ((a_0 (cdr (unwrap v_1))))
                        (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
                      #f)
                  (call-with-values
                   (lambda ()
                     (let ((d_0 (cdr (unwrap v_1))))
                       (let ((p_0 (unwrap d_0)))
                         (let ((args_0 (let ((a_0 (car p_0))) a_0)))
                           (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                             (let ((args_1 args_0))
                               (values args_1 body_0)))))))
                   (case-lambda
                    ((args_0 body_0)
                     (let ((size_0 (body-record-sizes!_0 body_0 sizes_0)))
                       (begin (begin (hash-set! sizes_0 v_1 size_0) size_0))))
                    (args (raise-binding-result-arity-error 2 args))))
                  (if (if (eq? 'case-lambda hd_0)
                        (let ((a_0 (cdr (unwrap v_1))))
                          (if (wrap-list? a_0)
                            (begin
                              (letrec*
                               ((for-loop_0
                                 (|#%name|
                                  for-loop
                                  (lambda (result_0 lst_0)
                                    (begin
                                      (if (not (null? (unwrap lst_0)))
                                        (let ((v_2
                                               (if (pair? (unwrap lst_0))
                                                 (wrap-car lst_0)
                                                 lst_0)))
                                          (let ((rest_0
                                                 (if (pair? (unwrap lst_0))
                                                   (wrap-cdr lst_0)
                                                   null)))
                                            (let ((v_3 v_2))
                                              (let ((result_1
                                                     (let ((result_1
                                                            (let ((p_0
                                                                   (unwrap
                                                                    v_3)))
                                                              (if (pair? p_0)
                                                                #t
                                                                #f))))
                                                       (values result_1))))
                                                (if (if (not
                                                         (let ((x_0
                                                                (list v_3)))
                                                           (not result_1)))
                                                      #t
                                                      #f)
                                                  (for-loop_0 result_1 rest_0)
                                                  result_1)))))
                                        result_0))))))
                               (for-loop_0 #t a_0)))
                            #f))
                        #f)
                    (let ((bodys_0
                           (let ((d_0 (cdr (unwrap v_1))))
                             (let ((bodys_0
                                    (begin
                                      (letrec*
                                       ((for-loop_0
                                         (|#%name|
                                          for-loop
                                          (lambda (bodys_0 lst_0)
                                            (begin
                                              (if (not (null? (unwrap lst_0)))
                                                (let ((v_2
                                                       (if (pair?
                                                            (unwrap lst_0))
                                                         (wrap-car lst_0)
                                                         lst_0)))
                                                  (let ((rest_0
                                                         (if (pair?
                                                              (unwrap lst_0))
                                                           (wrap-cdr lst_0)
                                                           null)))
                                                    (let ((v_3 v_2))
                                                      (let ((bodys_1
                                                             (let ((bodys_1
                                                                    (let ((bodys19_0
                                                                           (let ((d_1
                                                                                  (cdr
                                                                                   (unwrap
                                                                                    v_3))))
                                                                             d_1)))
                                                                      (cons
                                                                       bodys19_0
                                                                       bodys_0))))
                                                               (values
                                                                bodys_1))))
                                                        (for-loop_0
                                                         bodys_1
                                                         rest_0)))))
                                                bodys_0))))))
                                       (for-loop_0 null d_0)))))
                               (reverse$1 bodys_0)))))
                      (let ((new-size_0
                             (begin
                               (letrec*
                                ((for-loop_0
                                  (|#%name|
                                   for-loop
                                   (lambda (result_0 lst_0)
                                     (begin
                                       (if (pair? lst_0)
                                         (let ((body_0 (unsafe-car lst_0)))
                                           (let ((rest_0 (unsafe-cdr lst_0)))
                                             (let ((result_1
                                                    (let ((result_1
                                                           (+
                                                            result_0
                                                            (body-record-sizes!_0
                                                             body_0
                                                             sizes_0))))
                                                      (values result_1))))
                                               (for-loop_0 result_1 rest_0))))
                                         result_0))))))
                                (for-loop_0 0 bodys_0)))))
                        (begin
                          (begin
                            (hash-set! sizes_0 v_1 new-size_0)
                            new-size_0))))
                    (if (if (eq? 'let hd_0) #t #f)
                      (record-sizes-in-let!_0 v_1 sizes_0)
                      (if (if (eq? 'letrec hd_0) #t #f)
                        (record-sizes-in-let!_0 v_1 sizes_0)
                        (if (if (eq? 'letrec* hd_0) #t #f)
                          (record-sizes-in-let!_0 v_1 sizes_0)
                          (if (if (eq? 'begin hd_0) #t #f)
                            (let ((vs_0 (let ((d_0 (cdr (unwrap v_1)))) d_0)))
                              (add1 (body-record-sizes!_0 vs_0 sizes_0)))
                            (if (if (eq? 'begin0 hd_0) #t #f)
                              (let ((vs_0
                                     (let ((d_0 (cdr (unwrap v_1)))) d_0)))
                                (add1 (body-record-sizes!_0 vs_0 sizes_0)))
                              (if (if (eq? 'if hd_0)
                                    (let ((a_0 (cdr (unwrap v_1))))
                                      (let ((p_0 (unwrap a_0)))
                                        (if (pair? p_0)
                                          (let ((a_1 (cdr p_0)))
                                            (let ((p_1 (unwrap a_1)))
                                              (if (pair? p_1)
                                                (let ((a_2 (cdr p_1)))
                                                  (let ((p_2 (unwrap a_2)))
                                                    (if (pair? p_2)
                                                      (let ((a_3 (cdr p_2)))
                                                        (let ((app_0
                                                               (unwrap '())))
                                                          (eq?
                                                           app_0
                                                           (unwrap a_3))))
                                                      #f)))
                                                #f)))
                                          #f)))
                                    #f)
                                (call-with-values
                                 (lambda ()
                                   (let ((d_0 (cdr (unwrap v_1))))
                                     (let ((p_0 (unwrap d_0)))
                                       (let ((tst_0
                                              (let ((a_0 (car p_0))) a_0)))
                                         (call-with-values
                                          (lambda ()
                                            (let ((d_1 (cdr p_0)))
                                              (let ((p_1 (unwrap d_1)))
                                                (let ((thn_0
                                                       (let ((a_0 (car p_1)))
                                                         a_0)))
                                                  (let ((els_0
                                                         (let ((d_2 (cdr p_1)))
                                                           (let ((a_0
                                                                  (car
                                                                   (unwrap
                                                                    d_2))))
                                                             a_0))))
                                                    (let ((thn_1 thn_0))
                                                      (values
                                                       thn_1
                                                       els_0)))))))
                                          (case-lambda
                                           ((thn_0 els_0)
                                            (let ((tst_1 tst_0))
                                              (values tst_1 thn_0 els_0)))
                                           (args
                                            (raise-binding-result-arity-error
                                             2
                                             args))))))))
                                 (case-lambda
                                  ((tst_0 thn_0 els_0)
                                   (let ((app_0
                                          (record-sizes!_0 tst_0 sizes_0)))
                                     (let ((app_1
                                            (record-sizes!_0 thn_0 sizes_0)))
                                       (+
                                        1
                                        app_0
                                        app_1
                                        (record-sizes!_0 els_0 sizes_0)))))
                                  (args
                                   (raise-binding-result-arity-error 3 args))))
                                (if (if (eq? 'with-continuation-mark* hd_0)
                                      (let ((a_0 (cdr (unwrap v_1))))
                                        (let ((p_0 (unwrap a_0)))
                                          (if (pair? p_0)
                                            (let ((a_1 (cdr p_0)))
                                              (let ((p_1 (unwrap a_1)))
                                                (if (pair? p_1)
                                                  (let ((a_2 (cdr p_1)))
                                                    (let ((p_2 (unwrap a_2)))
                                                      (if (pair? p_2)
                                                        (let ((a_3 (cdr p_2)))
                                                          (let ((p_3
                                                                 (unwrap a_3)))
                                                            (if (pair? p_3)
                                                              (let ((a_4
                                                                     (cdr
                                                                      p_3)))
                                                                (let ((app_0
                                                                       (unwrap
                                                                        '())))
                                                                  (eq?
                                                                   app_0
                                                                   (unwrap
                                                                    a_4))))
                                                              #f)))
                                                        #f)))
                                                  #f)))
                                            #f)))
                                      #f)
                                  (call-with-values
                                   (lambda ()
                                     (let ((d_0 (cdr (unwrap v_1))))
                                       (let ((p_0 (unwrap d_0)))
                                         (let ((mode_0
                                                (let ((a_0 (car p_0))) a_0)))
                                           (call-with-values
                                            (lambda ()
                                              (let ((d_1 (cdr p_0)))
                                                (let ((p_1 (unwrap d_1)))
                                                  (let ((key_0
                                                         (let ((a_0 (car p_1)))
                                                           a_0)))
                                                    (call-with-values
                                                     (lambda ()
                                                       (let ((d_2 (cdr p_1)))
                                                         (let ((p_2
                                                                (unwrap d_2)))
                                                           (let ((val_0
                                                                  (let ((a_0
                                                                         (car
                                                                          p_2)))
                                                                    a_0)))
                                                             (let ((body_0
                                                                    (let ((d_3
                                                                           (cdr
                                                                            p_2)))
                                                                      (let ((a_0
                                                                             (car
                                                                              (unwrap
                                                                               d_3))))
                                                                        a_0))))
                                                               (let ((val_1
                                                                      val_0))
                                                                 (values
                                                                  val_1
                                                                  body_0)))))))
                                                     (case-lambda
                                                      ((val_0 body_0)
                                                       (let ((key_1 key_0))
                                                         (values
                                                          key_1
                                                          val_0
                                                          body_0)))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args))))))))
                                            (case-lambda
                                             ((key_0 val_0 body_0)
                                              (let ((mode_1 mode_0))
                                                (values
                                                 mode_1
                                                 key_0
                                                 val_0
                                                 body_0)))
                                             (args
                                              (raise-binding-result-arity-error
                                               3
                                               args))))))))
                                   (case-lambda
                                    ((mode_0 key_0 val_0 body_0)
                                     (let ((app_0
                                            (record-sizes!_0 key_0 sizes_0)))
                                       (let ((app_1
                                              (record-sizes!_0 val_0 sizes_0)))
                                         (+
                                          1
                                          app_0
                                          app_1
                                          (record-sizes!_0 body_0 sizes_0)))))
                                    (args
                                     (raise-binding-result-arity-error
                                      4
                                      args))))
                                  (if (if (eq? 'quote hd_0)
                                        (let ((a_0 (cdr (unwrap v_1))))
                                          (let ((p_0 (unwrap a_0)))
                                            (if (pair? p_0)
                                              (let ((a_1 (cdr p_0)))
                                                (let ((app_0 (unwrap '())))
                                                  (eq? app_0 (unwrap a_1))))
                                              #f)))
                                        #f)
                                    1
                                    (if (if (eq? 'set! hd_0)
                                          (let ((a_0 (cdr (unwrap v_1))))
                                            (let ((p_0 (unwrap a_0)))
                                              (if (pair? p_0)
                                                (let ((a_1 (cdr p_0)))
                                                  (let ((p_1 (unwrap a_1)))
                                                    (if (pair? p_1)
                                                      (let ((a_2 (cdr p_1)))
                                                        (let ((app_0
                                                               (unwrap '())))
                                                          (eq?
                                                           app_0
                                                           (unwrap a_2))))
                                                      #f)))
                                                #f)))
                                          #f)
                                      (let ((rhs_0
                                             (let ((d_0 (cdr (unwrap v_1))))
                                               (let ((d_1 (cdr (unwrap d_0))))
                                                 (let ((a_0
                                                        (car (unwrap d_1))))
                                                   a_0)))))
                                        (add1 (record-sizes!_0 rhs_0 sizes_0)))
                                      (if (wrap-list? v_1)
                                        (body-record-sizes!_0 v_1 sizes_0)
                                        1)))))))))))))))))
        (body-record-sizes!_0
         (|#%name|
          body-record-sizes!
          (lambda (body_0 sizes_0)
            (begin
              (begin
                (letrec*
                 ((for-loop_0
                   (|#%name|
                    for-loop
                    (lambda (result_0 lst_0)
                      (begin
                        (if (not (null? (unwrap lst_0)))
                          (let ((v_1
                                 (if (pair? (unwrap lst_0))
                                   (wrap-car lst_0)
                                   lst_0)))
                            (let ((rest_0
                                   (if (pair? (unwrap lst_0))
                                     (wrap-cdr lst_0)
                                     null)))
                              (let ((v_2 v_1))
                                (let ((result_1
                                       (let ((result_1
                                              (+
                                               result_0
                                               (record-sizes!_0 v_2 sizes_0))))
                                         (values result_1))))
                                  (for-loop_0 result_1 rest_0)))))
                          result_0))))))
                 (for-loop_0 0 body_0)))))))
        (record-sizes-in-let!_0
         (|#%name|
          record-sizes-in-let!
          (lambda (v_1 sizes_0)
            (begin
              (if (let ((p_0 (unwrap v_1)))
                    (if (pair? p_0)
                      (let ((a_0 (cdr p_0)))
                        (let ((p_1 (unwrap a_0)))
                          (if (pair? p_1)
                            (if (let ((a_1 (car p_1)))
                                  (if (wrap-list? a_1)
                                    (begin
                                      (letrec*
                                       ((for-loop_0
                                         (|#%name|
                                          for-loop
                                          (lambda (result_0 lst_0)
                                            (begin
                                              (if (not (null? (unwrap lst_0)))
                                                (let ((v_2
                                                       (if (pair?
                                                            (unwrap lst_0))
                                                         (wrap-car lst_0)
                                                         lst_0)))
                                                  (let ((rest_0
                                                         (if (pair?
                                                              (unwrap lst_0))
                                                           (wrap-cdr lst_0)
                                                           null)))
                                                    (let ((v_3 v_2))
                                                      (let ((result_1
                                                             (let ((result_1
                                                                    (let ((p_2
                                                                           (unwrap
                                                                            v_3)))
                                                                      (if (pair?
                                                                           p_2)
                                                                        (let ((a_2
                                                                               (cdr
                                                                                p_2)))
                                                                          (let ((p_3
                                                                                 (unwrap
                                                                                  a_2)))
                                                                            (if (pair?
                                                                                 p_3)
                                                                              (let ((a_3
                                                                                     (cdr
                                                                                      p_3)))
                                                                                (let ((app_0
                                                                                       (unwrap
                                                                                        '())))
                                                                                  (eq?
                                                                                   app_0
                                                                                   (unwrap
                                                                                    a_3))))
                                                                              #f)))
                                                                        #f))))
                                                               (values
                                                                result_1))))
                                                        (if (if (not
                                                                 (let ((x_0
                                                                        (list
                                                                         v_3)))
                                                                   (not
                                                                    result_1)))
                                                              #t
                                                              #f)
                                                          (for-loop_0
                                                           result_1
                                                           rest_0)
                                                          result_1)))))
                                                result_0))))))
                                       (for-loop_0 #t a_1)))
                                    #f))
                              #t
                              #f)
                            #f)))
                      #f))
                (call-with-values
                 (lambda ()
                   (let ((p_0 (unwrap v_1)))
                     (let ((let-form_0 (let ((a_0 (car p_0))) a_0)))
                       (call-with-values
                        (lambda ()
                          (let ((d_0 (cdr p_0)))
                            (let ((p_1 (unwrap d_0)))
                              (let ((rhss_0
                                     (let ((a_0 (car p_1)))
                                       (let ((rhss_0
                                              (begin
                                                (letrec*
                                                 ((for-loop_0
                                                   (|#%name|
                                                    for-loop
                                                    (lambda (rhss_0 lst_0)
                                                      (begin
                                                        (if (not
                                                             (null?
                                                              (unwrap lst_0)))
                                                          (let ((v_2
                                                                 (if (pair?
                                                                      (unwrap
                                                                       lst_0))
                                                                   (wrap-car
                                                                    lst_0)
                                                                   lst_0)))
                                                            (let ((rest_0
                                                                   (if (pair?
                                                                        (unwrap
                                                                         lst_0))
                                                                     (wrap-cdr
                                                                      lst_0)
                                                                     null)))
                                                              (let ((v_3 v_2))
                                                                (let ((rhss_1
                                                                       (let ((rhss_1
                                                                              (let ((rhss20_0
                                                                                     (let ((d_1
                                                                                            (cdr
                                                                                             (unwrap
                                                                                              v_3))))
                                                                                       (let ((a_1
                                                                                              (car
                                                                                               (unwrap
                                                                                                d_1))))
                                                                                         a_1))))
                                                                                (cons
                                                                                 rhss20_0
                                                                                 rhss_0))))
                                                                         (values
                                                                          rhss_1))))
                                                                  (for-loop_0
                                                                   rhss_1
                                                                   rest_0)))))
                                                          rhss_0))))))
                                                 (for-loop_0 null a_0)))))
                                         (reverse$1 rhss_0)))))
                                (let ((body_0 (let ((d_1 (cdr p_1))) d_1)))
                                  (let ((rhss_1 rhss_0))
                                    (values rhss_1 body_0)))))))
                        (case-lambda
                         ((rhss_0 body_0)
                          (let ((let-form_1 let-form_0))
                            (values let-form_1 rhss_0 body_0)))
                         (args (raise-binding-result-arity-error 2 args)))))))
                 (case-lambda
                  ((let-form_0 rhss_0 body_0)
                   (let ((app_0
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (result_0 lst_0)
                                  (begin
                                    (if (pair? lst_0)
                                      (let ((rhs_0 (unsafe-car lst_0)))
                                        (let ((rest_0 (unsafe-cdr lst_0)))
                                          (let ((result_1
                                                 (let ((result_1
                                                        (+
                                                         result_0
                                                         (record-sizes!_0
                                                          rhs_0
                                                          sizes_0))))
                                                   (values result_1))))
                                            (for-loop_0 result_1 rest_0))))
                                      result_0))))))
                             (for-loop_0 0 rhss_0)))))
                     (+ 1 app_0 (body-record-sizes!_0 body_0 sizes_0))))
                  (args (raise-binding-result-arity-error 3 args))))
                (error 'match "failed ~e" v_1)))))))
       (with-continuation-mark*
        authentic
        parameterization-key
        (extend-parameterization
         (continuation-mark-set-first #f parameterization-key)
         gensym-counter
         (box 0))
        (top_0))))))
(define xify
  (letrec ((xify-body_0
            (|#%name|
             xify-body
             (lambda (es_0 env_0)
               (begin
                 (reverse$1
                  (begin
                    (letrec*
                     ((for-loop_0
                       (|#%name|
                        for-loop
                        (lambda (fold-var_0 lst_0)
                          (begin
                            (if (not (null? (unwrap lst_0)))
                              (let ((e_0
                                     (if (pair? (unwrap lst_0))
                                       (wrap-car lst_0)
                                       lst_0)))
                                (let ((rest_0
                                       (if (pair? (unwrap lst_0))
                                         (wrap-cdr lst_0)
                                         null)))
                                  (let ((e_1 e_0))
                                    (let ((fold-var_1
                                           (let ((fold-var_1
                                                  (cons
                                                   (xify_0 e_1 env_0)
                                                   fold-var_0)))
                                             (values fold-var_1))))
                                      (for-loop_0 fold-var_1 rest_0)))))
                              fold-var_0))))))
                     (for-loop_0 null es_0))))))))
           (xify-ids_0
            (|#%name|
             xify-ids
             (lambda (ids_0 env_0)
               (begin
                 (if (pair? ids_0)
                   (let ((u-id_0 (unwrap (car ids_0))))
                     (let ((x_0
                            (let ((or-part_0 (hash-ref env_0 u-id_0 #f)))
                              (if or-part_0
                                or-part_0
                                (string->symbol
                                 (string-append
                                  "x"
                                  (number->string (hash-count env_0))))))))
                       (call-with-values
                        (lambda ()
                          (let ((app_0 (cdr ids_0)))
                            (xify-ids_0 app_0 (hash-set env_0 u-id_0 x_0))))
                        (case-lambda
                         ((rest-xs_0 rest-env_0)
                          (values (cons x_0 rest-xs_0) rest-env_0))
                         (args (raise-binding-result-arity-error 2 args))))))
                   (if (null? ids_0)
                     (values '() env_0)
                     (call-with-values
                      (lambda () (xify-ids_0 (list ids_0) env_0))
                      (case-lambda
                       ((xs_0 new-env_0) (values (car xs_0) new-env_0))
                       (args (raise-binding-result-arity-error 2 args))))))))))
           (xify-let_0
            (|#%name|
             xify-let
             (lambda (form_0 ids_0 rhss_0 body_0 env_0)
               (begin
                 (call-with-values
                  (lambda () (xify-ids_0 ids_0 env_0))
                  (case-lambda
                   ((new-ids_0 new-env_0)
                    (let ((app_0
                           (reverse$1
                            (begin
                              (letrec*
                               ((for-loop_0
                                 (|#%name|
                                  for-loop
                                  (lambda (fold-var_0 lst_0 lst_1)
                                    (begin
                                      (if (if (pair? lst_0) (pair? lst_1) #f)
                                        (let ((new-id_0 (unsafe-car lst_0)))
                                          (let ((rest_0 (unsafe-cdr lst_0)))
                                            (let ((rhs_0 (unsafe-car lst_1)))
                                              (let ((rest_1
                                                     (unsafe-cdr lst_1)))
                                                (let ((fold-var_1
                                                       (let ((fold-var_1
                                                              (cons
                                                               (list
                                                                new-id_0
                                                                (xify_0
                                                                 rhs_0
                                                                 (if (eq?
                                                                      form_0
                                                                      'let)
                                                                   env_0
                                                                   new-env_0)))
                                                               fold-var_0)))
                                                         (values fold-var_1))))
                                                  (for-loop_0
                                                   fold-var_1
                                                   rest_0
                                                   rest_1))))))
                                        fold-var_0))))))
                               (for-loop_0 null new-ids_0 rhss_0))))))
                      (list* form_0 app_0 (xify-body_0 body_0 new-env_0))))
                   (args (raise-binding-result-arity-error 2 args))))))))
           (xify_0
            (|#%name|
             xify
             (lambda (e_0 env_0)
               (begin
                 (reannotate
                  e_0
                  (let ((hd_0
                         (let ((p_0 (unwrap e_0)))
                           (if (pair? p_0) (unwrap (car p_0)) #f))))
                    (if (if (eq? 'lambda hd_0)
                          (let ((a_0 (cdr (unwrap e_0))))
                            (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
                          #f)
                      (call-with-values
                       (lambda ()
                         (let ((d_0 (cdr (unwrap e_0))))
                           (let ((p_0 (unwrap d_0)))
                             (let ((ids_0 (let ((a_0 (car p_0))) a_0)))
                               (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                                 (let ((ids_1 ids_0))
                                   (values ids_1 body_0)))))))
                       (case-lambda
                        ((ids_0 body_0)
                         (call-with-values
                          (lambda () (xify-ids_0 ids_0 env_0))
                          (case-lambda
                           ((new-ids_0 new-env_0)
                            (list*
                             'lambda
                             new-ids_0
                             (xify-body_0 body_0 new-env_0)))
                           (args (raise-binding-result-arity-error 2 args)))))
                        (args (raise-binding-result-arity-error 2 args))))
                      (if (if (eq? 'case-lambda hd_0)
                            (let ((a_0 (cdr (unwrap e_0)))) (wrap-list? a_0))
                            #f)
                        (let ((clauses_0
                               (let ((d_0 (cdr (unwrap e_0))))
                                 (unwrap-list d_0))))
                          (list*
                           'case-lambda
                           (reverse$1
                            (begin
                              (letrec*
                               ((for-loop_0
                                 (|#%name|
                                  for-loop
                                  (lambda (fold-var_0 lst_0)
                                    (begin
                                      (if (pair? lst_0)
                                        (let ((clause_0 (unsafe-car lst_0)))
                                          (let ((rest_0 (unsafe-cdr lst_0)))
                                            (let ((fold-var_1
                                                   (let ((fold-var_1
                                                          (cons
                                                           (cdr
                                                            (xify_0
                                                             (cons
                                                              'lambda
                                                              clause_0)
                                                             env_0))
                                                           fold-var_0)))
                                                     (values fold-var_1))))
                                              (for-loop_0 fold-var_1 rest_0))))
                                        fold-var_0))))))
                               (for-loop_0 null clauses_0))))))
                        (if (if (eq? 'let hd_0)
                              (let ((a_0 (cdr (unwrap e_0))))
                                (let ((p_0 (unwrap a_0)))
                                  (if (pair? p_0)
                                    (if (let ((a_1 (car p_0)))
                                          (if (wrap-list? a_1)
                                            (begin
                                              (letrec*
                                               ((for-loop_0
                                                 (|#%name|
                                                  for-loop
                                                  (lambda (result_0 lst_0)
                                                    (begin
                                                      (if (not
                                                           (null?
                                                            (unwrap lst_0)))
                                                        (let ((v_0
                                                               (if (pair?
                                                                    (unwrap
                                                                     lst_0))
                                                                 (wrap-car
                                                                  lst_0)
                                                                 lst_0)))
                                                          (let ((rest_0
                                                                 (if (pair?
                                                                      (unwrap
                                                                       lst_0))
                                                                   (wrap-cdr
                                                                    lst_0)
                                                                   null)))
                                                            (let ((v_1 v_0))
                                                              (let ((result_1
                                                                     (let ((result_1
                                                                            (let ((p_1
                                                                                   (unwrap
                                                                                    v_1)))
                                                                              (if (pair?
                                                                                   p_1)
                                                                                (let ((a_2
                                                                                       (cdr
                                                                                        p_1)))
                                                                                  (let ((p_2
                                                                                         (unwrap
                                                                                          a_2)))
                                                                                    (if (pair?
                                                                                         p_2)
                                                                                      (let ((a_3
                                                                                             (cdr
                                                                                              p_2)))
                                                                                        (let ((app_0
                                                                                               (unwrap
                                                                                                '())))
                                                                                          (eq?
                                                                                           app_0
                                                                                           (unwrap
                                                                                            a_3))))
                                                                                      #f)))
                                                                                #f))))
                                                                       (values
                                                                        result_1))))
                                                                (if (if (not
                                                                         (let ((x_0
                                                                                (list
                                                                                 v_1)))
                                                                           (not
                                                                            result_1)))
                                                                      #t
                                                                      #f)
                                                                  (for-loop_0
                                                                   result_1
                                                                   rest_0)
                                                                  result_1)))))
                                                        result_0))))))
                                               (for-loop_0 #t a_1)))
                                            #f))
                                      #t
                                      #f)
                                    #f)))
                              #f)
                          (call-with-values
                           (lambda ()
                             (let ((d_0 (cdr (unwrap e_0))))
                               (let ((p_0 (unwrap d_0)))
                                 (call-with-values
                                  (lambda ()
                                    (let ((a_0 (car p_0)))
                                      (call-with-values
                                       (lambda ()
                                         (begin
                                           (letrec*
                                            ((for-loop_0
                                              (|#%name|
                                               for-loop
                                               (lambda (ids_0 rhss_0 lst_0)
                                                 (begin
                                                   (if (not
                                                        (null? (unwrap lst_0)))
                                                     (let ((v_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-car lst_0)
                                                              lst_0)))
                                                       (let ((rest_0
                                                              (if (pair?
                                                                   (unwrap
                                                                    lst_0))
                                                                (wrap-cdr
                                                                 lst_0)
                                                                null)))
                                                         (let ((v_1 v_0))
                                                           (call-with-values
                                                            (lambda ()
                                                              (call-with-values
                                                               (lambda ()
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (let ((p_1
                                                                           (unwrap
                                                                            v_1)))
                                                                      (let ((ids_1
                                                                             (let ((a_1
                                                                                    (car
                                                                                     p_1)))
                                                                               a_1)))
                                                                        (let ((rhss_1
                                                                               (let ((d_1
                                                                                      (cdr
                                                                                       p_1)))
                                                                                 (let ((a_1
                                                                                        (car
                                                                                         (unwrap
                                                                                          d_1))))
                                                                                   a_1))))
                                                                          (let ((ids_2
                                                                                 ids_1))
                                                                            (values
                                                                             ids_2
                                                                             rhss_1))))))
                                                                  (case-lambda
                                                                   ((ids1_0
                                                                     rhss2_0)
                                                                    (values
                                                                     (cons
                                                                      ids1_0
                                                                      ids_0)
                                                                     (cons
                                                                      rhss2_0
                                                                      rhss_0)))
                                                                   (args
                                                                    (raise-binding-result-arity-error
                                                                     2
                                                                     args)))))
                                                               (case-lambda
                                                                ((ids_1 rhss_1)
                                                                 (values
                                                                  ids_1
                                                                  rhss_1))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))
                                                            (case-lambda
                                                             ((ids_1 rhss_1)
                                                              (for-loop_0
                                                               ids_1
                                                               rhss_1
                                                               rest_0))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               2
                                                               args)))))))
                                                     (values
                                                      ids_0
                                                      rhss_0)))))))
                                            (for-loop_0 null null a_0))))
                                       (case-lambda
                                        ((ids_0 rhss_0)
                                         (let ((app_0 (reverse$1 ids_0)))
                                           (values app_0 (reverse$1 rhss_0))))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))))
                                  (case-lambda
                                   ((ids_0 rhss_0)
                                    (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                                      (let ((ids_1 ids_0) (rhss_1 rhss_0))
                                        (values ids_1 rhss_1 body_0))))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args)))))))
                           (case-lambda
                            ((ids_0 rhss_0 body_0)
                             (xify-let_0 'let ids_0 rhss_0 body_0 env_0))
                            (args (raise-binding-result-arity-error 3 args))))
                          (if (if (eq? 'letrec hd_0)
                                (let ((a_0 (cdr (unwrap e_0))))
                                  (let ((p_0 (unwrap a_0)))
                                    (if (pair? p_0)
                                      (if (let ((a_1 (car p_0)))
                                            (if (wrap-list? a_1)
                                              (begin
                                                (letrec*
                                                 ((for-loop_0
                                                   (|#%name|
                                                    for-loop
                                                    (lambda (result_0 lst_0)
                                                      (begin
                                                        (if (not
                                                             (null?
                                                              (unwrap lst_0)))
                                                          (let ((v_0
                                                                 (if (pair?
                                                                      (unwrap
                                                                       lst_0))
                                                                   (wrap-car
                                                                    lst_0)
                                                                   lst_0)))
                                                            (let ((rest_0
                                                                   (if (pair?
                                                                        (unwrap
                                                                         lst_0))
                                                                     (wrap-cdr
                                                                      lst_0)
                                                                     null)))
                                                              (let ((v_1 v_0))
                                                                (let ((result_1
                                                                       (let ((result_1
                                                                              (let ((p_1
                                                                                     (unwrap
                                                                                      v_1)))
                                                                                (if (pair?
                                                                                     p_1)
                                                                                  (let ((a_2
                                                                                         (cdr
                                                                                          p_1)))
                                                                                    (let ((p_2
                                                                                           (unwrap
                                                                                            a_2)))
                                                                                      (if (pair?
                                                                                           p_2)
                                                                                        (let ((a_3
                                                                                               (cdr
                                                                                                p_2)))
                                                                                          (let ((app_0
                                                                                                 (unwrap
                                                                                                  '())))
                                                                                            (eq?
                                                                                             app_0
                                                                                             (unwrap
                                                                                              a_3))))
                                                                                        #f)))
                                                                                  #f))))
                                                                         (values
                                                                          result_1))))
                                                                  (if (if (not
                                                                           (let ((x_0
                                                                                  (list
                                                                                   v_1)))
                                                                             (not
                                                                              result_1)))
                                                                        #t
                                                                        #f)
                                                                    (for-loop_0
                                                                     result_1
                                                                     rest_0)
                                                                    result_1)))))
                                                          result_0))))))
                                                 (for-loop_0 #t a_1)))
                                              #f))
                                        #t
                                        #f)
                                      #f)))
                                #f)
                            (call-with-values
                             (lambda ()
                               (let ((d_0 (cdr (unwrap e_0))))
                                 (let ((p_0 (unwrap d_0)))
                                   (call-with-values
                                    (lambda ()
                                      (let ((a_0 (car p_0)))
                                        (call-with-values
                                         (lambda ()
                                           (begin
                                             (letrec*
                                              ((for-loop_0
                                                (|#%name|
                                                 for-loop
                                                 (lambda (ids_0 rhss_0 lst_0)
                                                   (begin
                                                     (if (not
                                                          (null?
                                                           (unwrap lst_0)))
                                                       (let ((v_0
                                                              (if (pair?
                                                                   (unwrap
                                                                    lst_0))
                                                                (wrap-car
                                                                 lst_0)
                                                                lst_0)))
                                                         (let ((rest_0
                                                                (if (pair?
                                                                     (unwrap
                                                                      lst_0))
                                                                  (wrap-cdr
                                                                   lst_0)
                                                                  null)))
                                                           (let ((v_1 v_0))
                                                             (call-with-values
                                                              (lambda ()
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (call-with-values
                                                                    (lambda ()
                                                                      (let ((p_1
                                                                             (unwrap
                                                                              v_1)))
                                                                        (let ((ids_1
                                                                               (let ((a_1
                                                                                      (car
                                                                                       p_1)))
                                                                                 a_1)))
                                                                          (let ((rhss_1
                                                                                 (let ((d_1
                                                                                        (cdr
                                                                                         p_1)))
                                                                                   (let ((a_1
                                                                                          (car
                                                                                           (unwrap
                                                                                            d_1))))
                                                                                     a_1))))
                                                                            (let ((ids_2
                                                                                   ids_1))
                                                                              (values
                                                                               ids_2
                                                                               rhss_1))))))
                                                                    (case-lambda
                                                                     ((ids3_0
                                                                       rhss4_0)
                                                                      (values
                                                                       (cons
                                                                        ids3_0
                                                                        ids_0)
                                                                       (cons
                                                                        rhss4_0
                                                                        rhss_0)))
                                                                     (args
                                                                      (raise-binding-result-arity-error
                                                                       2
                                                                       args)))))
                                                                 (case-lambda
                                                                  ((ids_1
                                                                    rhss_1)
                                                                   (values
                                                                    ids_1
                                                                    rhss_1))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    2
                                                                    args)))))
                                                              (case-lambda
                                                               ((ids_1 rhss_1)
                                                                (for-loop_0
                                                                 ids_1
                                                                 rhss_1
                                                                 rest_0))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 2
                                                                 args)))))))
                                                       (values
                                                        ids_0
                                                        rhss_0)))))))
                                              (for-loop_0 null null a_0))))
                                         (case-lambda
                                          ((ids_0 rhss_0)
                                           (let ((app_0 (reverse$1 ids_0)))
                                             (values
                                              app_0
                                              (reverse$1 rhss_0))))
                                          (args
                                           (raise-binding-result-arity-error
                                            2
                                            args))))))
                                    (case-lambda
                                     ((ids_0 rhss_0)
                                      (let ((body_0
                                             (let ((d_1 (cdr p_0))) d_1)))
                                        (let ((ids_1 ids_0) (rhss_1 rhss_0))
                                          (values ids_1 rhss_1 body_0))))
                                     (args
                                      (raise-binding-result-arity-error
                                       2
                                       args)))))))
                             (case-lambda
                              ((ids_0 rhss_0 body_0)
                               (xify-let_0 'letrec ids_0 rhss_0 body_0 env_0))
                              (args
                               (raise-binding-result-arity-error 3 args))))
                            (if (if (eq? 'letrec* hd_0)
                                  (let ((a_0 (cdr (unwrap e_0))))
                                    (let ((p_0 (unwrap a_0)))
                                      (if (pair? p_0)
                                        (if (let ((a_1 (car p_0)))
                                              (if (wrap-list? a_1)
                                                (begin
                                                  (letrec*
                                                   ((for-loop_0
                                                     (|#%name|
                                                      for-loop
                                                      (lambda (result_0 lst_0)
                                                        (begin
                                                          (if (not
                                                               (null?
                                                                (unwrap
                                                                 lst_0)))
                                                            (let ((v_0
                                                                   (if (pair?
                                                                        (unwrap
                                                                         lst_0))
                                                                     (wrap-car
                                                                      lst_0)
                                                                     lst_0)))
                                                              (let ((rest_0
                                                                     (if (pair?
                                                                          (unwrap
                                                                           lst_0))
                                                                       (wrap-cdr
                                                                        lst_0)
                                                                       null)))
                                                                (let ((v_1
                                                                       v_0))
                                                                  (let ((result_1
                                                                         (let ((result_1
                                                                                (let ((p_1
                                                                                       (unwrap
                                                                                        v_1)))
                                                                                  (if (pair?
                                                                                       p_1)
                                                                                    (let ((a_2
                                                                                           (cdr
                                                                                            p_1)))
                                                                                      (let ((p_2
                                                                                             (unwrap
                                                                                              a_2)))
                                                                                        (if (pair?
                                                                                             p_2)
                                                                                          (let ((a_3
                                                                                                 (cdr
                                                                                                  p_2)))
                                                                                            (let ((app_0
                                                                                                   (unwrap
                                                                                                    '())))
                                                                                              (eq?
                                                                                               app_0
                                                                                               (unwrap
                                                                                                a_3))))
                                                                                          #f)))
                                                                                    #f))))
                                                                           (values
                                                                            result_1))))
                                                                    (if (if (not
                                                                             (let ((x_0
                                                                                    (list
                                                                                     v_1)))
                                                                               (not
                                                                                result_1)))
                                                                          #t
                                                                          #f)
                                                                      (for-loop_0
                                                                       result_1
                                                                       rest_0)
                                                                      result_1)))))
                                                            result_0))))))
                                                   (for-loop_0 #t a_1)))
                                                #f))
                                          #t
                                          #f)
                                        #f)))
                                  #f)
                              (call-with-values
                               (lambda ()
                                 (let ((d_0 (cdr (unwrap e_0))))
                                   (let ((p_0 (unwrap d_0)))
                                     (call-with-values
                                      (lambda ()
                                        (let ((a_0 (car p_0)))
                                          (call-with-values
                                           (lambda ()
                                             (begin
                                               (letrec*
                                                ((for-loop_0
                                                  (|#%name|
                                                   for-loop
                                                   (lambda (ids_0 rhss_0 lst_0)
                                                     (begin
                                                       (if (not
                                                            (null?
                                                             (unwrap lst_0)))
                                                         (let ((v_0
                                                                (if (pair?
                                                                     (unwrap
                                                                      lst_0))
                                                                  (wrap-car
                                                                   lst_0)
                                                                  lst_0)))
                                                           (let ((rest_0
                                                                  (if (pair?
                                                                       (unwrap
                                                                        lst_0))
                                                                    (wrap-cdr
                                                                     lst_0)
                                                                    null)))
                                                             (let ((v_1 v_0))
                                                               (call-with-values
                                                                (lambda ()
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (call-with-values
                                                                      (lambda ()
                                                                        (let ((p_1
                                                                               (unwrap
                                                                                v_1)))
                                                                          (let ((ids_1
                                                                                 (let ((a_1
                                                                                        (car
                                                                                         p_1)))
                                                                                   a_1)))
                                                                            (let ((rhss_1
                                                                                   (let ((d_1
                                                                                          (cdr
                                                                                           p_1)))
                                                                                     (let ((a_1
                                                                                            (car
                                                                                             (unwrap
                                                                                              d_1))))
                                                                                       a_1))))
                                                                              (let ((ids_2
                                                                                     ids_1))
                                                                                (values
                                                                                 ids_2
                                                                                 rhss_1))))))
                                                                      (case-lambda
                                                                       ((ids5_0
                                                                         rhss6_0)
                                                                        (values
                                                                         (cons
                                                                          ids5_0
                                                                          ids_0)
                                                                         (cons
                                                                          rhss6_0
                                                                          rhss_0)))
                                                                       (args
                                                                        (raise-binding-result-arity-error
                                                                         2
                                                                         args)))))
                                                                   (case-lambda
                                                                    ((ids_1
                                                                      rhss_1)
                                                                     (values
                                                                      ids_1
                                                                      rhss_1))
                                                                    (args
                                                                     (raise-binding-result-arity-error
                                                                      2
                                                                      args)))))
                                                                (case-lambda
                                                                 ((ids_1
                                                                   rhss_1)
                                                                  (for-loop_0
                                                                   ids_1
                                                                   rhss_1
                                                                   rest_0))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   2
                                                                   args)))))))
                                                         (values
                                                          ids_0
                                                          rhss_0)))))))
                                                (for-loop_0 null null a_0))))
                                           (case-lambda
                                            ((ids_0 rhss_0)
                                             (let ((app_0 (reverse$1 ids_0)))
                                               (values
                                                app_0
                                                (reverse$1 rhss_0))))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args))))))
                                      (case-lambda
                                       ((ids_0 rhss_0)
                                        (let ((body_0
                                               (let ((d_1 (cdr p_0))) d_1)))
                                          (let ((ids_1 ids_0) (rhss_1 rhss_0))
                                            (values ids_1 rhss_1 body_0))))
                                       (args
                                        (raise-binding-result-arity-error
                                         2
                                         args)))))))
                               (case-lambda
                                ((ids_0 rhss_0 body_0)
                                 (xify-let_0
                                  'letrec*
                                  ids_0
                                  rhss_0
                                  body_0
                                  env_0))
                                (args
                                 (raise-binding-result-arity-error 3 args))))
                              (if (if (eq? 'quote hd_0)
                                    (let ((a_0 (cdr (unwrap e_0))))
                                      (let ((p_0 (unwrap a_0)))
                                        (if (pair? p_0)
                                          (let ((a_1 (cdr p_0)))
                                            (let ((app_0 (unwrap '())))
                                              (eq? app_0 (unwrap a_1))))
                                          #f)))
                                    #f)
                                (let ((v_0
                                       (let ((d_0 (cdr (unwrap e_0))))
                                         (let ((a_0 (car (unwrap d_0))))
                                           a_0))))
                                  e_0)
                                (if (if (eq? 'begin hd_0) #t #f)
                                  (let ((body_0
                                         (let ((d_0 (cdr (unwrap e_0)))) d_0)))
                                    (list* 'begin (xify-body_0 body_0 env_0)))
                                  (if (if (eq? 'if hd_0)
                                        (let ((a_0 (cdr (unwrap e_0))))
                                          (let ((p_0 (unwrap a_0)))
                                            (if (pair? p_0)
                                              (let ((a_1 (cdr p_0)))
                                                (let ((p_1 (unwrap a_1)))
                                                  (if (pair? p_1)
                                                    (let ((a_2 (cdr p_1)))
                                                      (let ((p_2 (unwrap a_2)))
                                                        (if (pair? p_2)
                                                          (let ((a_3
                                                                 (cdr p_2)))
                                                            (let ((app_0
                                                                   (unwrap
                                                                    '())))
                                                              (eq?
                                                               app_0
                                                               (unwrap a_3))))
                                                          #f)))
                                                    #f)))
                                              #f)))
                                        #f)
                                    (call-with-values
                                     (lambda ()
                                       (let ((d_0 (cdr (unwrap e_0))))
                                         (let ((p_0 (unwrap d_0)))
                                           (let ((tst_0
                                                  (let ((a_0 (car p_0))) a_0)))
                                             (call-with-values
                                              (lambda ()
                                                (let ((d_1 (cdr p_0)))
                                                  (let ((p_1 (unwrap d_1)))
                                                    (let ((thn_0
                                                           (let ((a_0
                                                                  (car p_1)))
                                                             a_0)))
                                                      (let ((els_0
                                                             (let ((d_2
                                                                    (cdr p_1)))
                                                               (let ((a_0
                                                                      (car
                                                                       (unwrap
                                                                        d_2))))
                                                                 a_0))))
                                                        (let ((thn_1 thn_0))
                                                          (values
                                                           thn_1
                                                           els_0)))))))
                                              (case-lambda
                                               ((thn_0 els_0)
                                                (let ((tst_1 tst_0))
                                                  (values tst_1 thn_0 els_0)))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args))))))))
                                     (case-lambda
                                      ((tst_0 thn_0 els_0)
                                       (let ((app_0 (xify_0 tst_0 env_0)))
                                         (let ((app_1 (xify_0 thn_0 env_0)))
                                           (list
                                            'if
                                            app_0
                                            app_1
                                            (xify_0 els_0 env_0)))))
                                      (args
                                       (raise-binding-result-arity-error
                                        3
                                        args))))
                                    (if (if (eq? 'with-continuation-mark* hd_0)
                                          (let ((a_0 (cdr (unwrap e_0))))
                                            (let ((p_0 (unwrap a_0)))
                                              (if (pair? p_0)
                                                (let ((a_1 (cdr p_0)))
                                                  (let ((p_1 (unwrap a_1)))
                                                    (if (pair? p_1)
                                                      (let ((a_2 (cdr p_1)))
                                                        (let ((p_2
                                                               (unwrap a_2)))
                                                          (if (pair? p_2)
                                                            (let ((a_3
                                                                   (cdr p_2)))
                                                              (let ((p_3
                                                                     (unwrap
                                                                      a_3)))
                                                                (if (pair? p_3)
                                                                  (let ((a_4
                                                                         (cdr
                                                                          p_3)))
                                                                    (let ((app_0
                                                                           (unwrap
                                                                            '())))
                                                                      (eq?
                                                                       app_0
                                                                       (unwrap
                                                                        a_4))))
                                                                  #f)))
                                                            #f)))
                                                      #f)))
                                                #f)))
                                          #f)
                                      (call-with-values
                                       (lambda ()
                                         (let ((d_0 (cdr (unwrap e_0))))
                                           (let ((p_0 (unwrap d_0)))
                                             (let ((mode_0
                                                    (let ((a_0 (car p_0)))
                                                      a_0)))
                                               (call-with-values
                                                (lambda ()
                                                  (let ((d_1 (cdr p_0)))
                                                    (let ((p_1 (unwrap d_1)))
                                                      (let ((key_0
                                                             (let ((a_0
                                                                    (car p_1)))
                                                               a_0)))
                                                        (call-with-values
                                                         (lambda ()
                                                           (let ((d_2
                                                                  (cdr p_1)))
                                                             (let ((p_2
                                                                    (unwrap
                                                                     d_2)))
                                                               (let ((val_0
                                                                      (let ((a_0
                                                                             (car
                                                                              p_2)))
                                                                        a_0)))
                                                                 (let ((body_0
                                                                        (let ((d_3
                                                                               (cdr
                                                                                p_2)))
                                                                          (let ((a_0
                                                                                 (car
                                                                                  (unwrap
                                                                                   d_3))))
                                                                            a_0))))
                                                                   (let ((val_1
                                                                          val_0))
                                                                     (values
                                                                      val_1
                                                                      body_0)))))))
                                                         (case-lambda
                                                          ((val_0 body_0)
                                                           (let ((key_1 key_0))
                                                             (values
                                                              key_1
                                                              val_0
                                                              body_0)))
                                                          (args
                                                           (raise-binding-result-arity-error
                                                            2
                                                            args))))))))
                                                (case-lambda
                                                 ((key_0 val_0 body_0)
                                                  (let ((mode_1 mode_0))
                                                    (values
                                                     mode_1
                                                     key_0
                                                     val_0
                                                     body_0)))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   3
                                                   args))))))))
                                       (case-lambda
                                        ((mode_0 key_0 val_0 body_0)
                                         (let ((app_0 (xify_0 key_0 env_0)))
                                           (let ((app_1 (xify_0 val_0 env_0)))
                                             (list
                                              'with-continuation-mark*
                                              mode_0
                                              app_0
                                              app_1
                                              (xify_0 body_0 env_0)))))
                                        (args
                                         (raise-binding-result-arity-error
                                          4
                                          args))))
                                      (if (if (eq? 'set! hd_0)
                                            (let ((a_0 (cdr (unwrap e_0))))
                                              (let ((p_0 (unwrap a_0)))
                                                (if (pair? p_0)
                                                  (let ((a_1 (cdr p_0)))
                                                    (let ((p_1 (unwrap a_1)))
                                                      (if (pair? p_1)
                                                        (let ((a_2 (cdr p_1)))
                                                          (let ((app_0
                                                                 (unwrap '())))
                                                            (eq?
                                                             app_0
                                                             (unwrap a_2))))
                                                        #f)))
                                                  #f)))
                                            #f)
                                        (call-with-values
                                         (lambda ()
                                           (let ((d_0 (cdr (unwrap e_0))))
                                             (let ((p_0 (unwrap d_0)))
                                               (let ((id_0
                                                      (let ((a_0 (car p_0)))
                                                        a_0)))
                                                 (let ((rhs_0
                                                        (let ((d_1 (cdr p_0)))
                                                          (let ((a_0
                                                                 (car
                                                                  (unwrap
                                                                   d_1))))
                                                            a_0))))
                                                   (let ((id_1 id_0))
                                                     (values id_1 rhs_0)))))))
                                         (case-lambda
                                          ((id_0 rhs_0)
                                           (let ((app_0 (xify_0 id_0 env_0)))
                                             (list
                                              'set!
                                              app_0
                                              (xify_0 rhs_0 env_0))))
                                          (args
                                           (raise-binding-result-arity-error
                                            2
                                            args))))
                                        (if (let ((p_0 (unwrap e_0)))
                                              (if (pair? p_0) #t #f))
                                          (xify-body_0 e_0 env_0)
                                          (let ((u-v_0 (unwrap e_0)))
                                            (if (symbol? u-v_0)
                                              (let ((x_0
                                                     (hash-ref
                                                      env_0
                                                      u-v_0
                                                      #f)))
                                                (if x_0
                                                  (reannotate e_0 x_0)
                                                  e_0))
                                              e_0))))))))))))))))))))
    (lambda (e_0) (xify_0 e_0 hash2610))))
(define relative-path-elements->path
  (lambda (elems_0)
    (let ((wrt-dir_0
           (let ((or-part_0 (current-load-relative-directory)))
             (if or-part_0 or-part_0 (current-directory)))))
      (let ((rel-elems_0
             (reverse$1
              (begin
                (letrec*
                 ((for-loop_0
                   (|#%name|
                    for-loop
                    (lambda (fold-var_0 lst_0)
                      (begin
                        (if (pair? lst_0)
                          (let ((p_0 (unsafe-car lst_0)))
                            (let ((rest_0 (unsafe-cdr lst_0)))
                              (let ((fold-var_1
                                     (let ((fold-var_1
                                            (cons
                                             (if (bytes? p_0)
                                               (bytes->path-element p_0)
                                               p_0)
                                             fold-var_0)))
                                       (values fold-var_1))))
                                (for-loop_0 fold-var_1 rest_0))))
                          fold-var_0))))))
                 (for-loop_0 null elems_0))))))
        (if wrt-dir_0
          (apply build-path wrt-dir_0 rel-elems_0)
          (if (null? rel-elems_0)
            (build-path 'same)
            (apply build-path rel-elems_0)))))))
(define make-path->relative-path-elements.1
  (letrec ((procz1 (lambda (v_0) #f))
           (loop_0
            (|#%name|
             loop
             (lambda (exploded-wrt-rel-dir_0 rel_0)
               (begin
                 (if (null? exploded-wrt-rel-dir_0)
                   (reverse$1
                    (begin
                      (letrec*
                       ((for-loop_0
                         (|#%name|
                          for-loop
                          (lambda (fold-var_0 lst_0)
                            (begin
                              (if (pair? lst_0)
                                (let ((p_0 (unsafe-car lst_0)))
                                  (let ((rest_0 (unsafe-cdr lst_0)))
                                    (let ((fold-var_1
                                           (let ((fold-var_1
                                                  (cons
                                                   (if (path? p_0)
                                                     (path-element->bytes p_0)
                                                     p_0)
                                                   fold-var_0)))
                                             (values fold-var_1))))
                                      (for-loop_0 fold-var_1 rest_0))))
                                fold-var_0))))))
                       (for-loop_0 null rel_0))))
                   (if (if (pair? rel_0)
                         (let ((app_0 (car rel_0)))
                           (equal? app_0 (car exploded-wrt-rel-dir_0)))
                         #f)
                     (let ((app_0 (cdr exploded-wrt-rel-dir_0)))
                       (loop_0 app_0 (cdr rel_0)))
                     (let ((app_0
                            (reverse$1
                             (begin
                               (letrec*
                                ((for-loop_0
                                  (|#%name|
                                   for-loop
                                   (lambda (fold-var_0 lst_0)
                                     (begin
                                       (if (pair? lst_0)
                                         (let ((p_0 (unsafe-car lst_0)))
                                           (let ((rest_0 (unsafe-cdr lst_0)))
                                             (let ((fold-var_1
                                                    (cons 'up fold-var_0)))
                                               (let ((fold-var_2
                                                      (values fold-var_1)))
                                                 (for-loop_0
                                                  fold-var_2
                                                  rest_0)))))
                                         fold-var_0))))))
                                (for-loop_0 null exploded-wrt-rel-dir_0))))))
                       (append
                        app_0
                        (reverse$1
                         (begin
                           (letrec*
                            ((for-loop_0
                              (|#%name|
                               for-loop
                               (lambda (fold-var_0 lst_0)
                                 (begin
                                   (if (pair? lst_0)
                                     (let ((p_0 (unsafe-car lst_0)))
                                       (let ((rest_0 (unsafe-cdr lst_0)))
                                         (let ((fold-var_1
                                                (let ((fold-var_1
                                                       (cons
                                                        (if (path? p_0)
                                                          (path-element->bytes
                                                           p_0)
                                                          p_0)
                                                        fold-var_0)))
                                                  (values fold-var_1))))
                                           (for-loop_0 fold-var_1 rest_0))))
                                     fold-var_0))))))
                            (for-loop_0 null rel_0)))))))))))))
    (|#%name|
     make-path->relative-path-elements
     (lambda (who1_0 wr-dir3_0)
       (begin
         (let ((wr-dir_0
                (if (eq? wr-dir3_0 unsafe-undefined)
                  (current-write-relative-directory)
                  wr-dir3_0)))
           (begin
             (if who1_0
               (if (let ((or-part_0 (not wr-dir_0)))
                     (if or-part_0
                       or-part_0
                       (let ((or-part_1
                              (if (path-string? wr-dir_0)
                                (complete-path? wr-dir_0)
                                #f)))
                         (if or-part_1
                           or-part_1
                           (if (pair? wr-dir_0)
                             (if (path-string? (car wr-dir_0))
                               (if (complete-path? (car wr-dir_0))
                                 (if (path-string? (cdr wr-dir_0))
                                   (complete-path? (cdr wr-dir_0))
                                   #f)
                                 #f)
                               #f)
                             #f)))))
                 (void)
                 (raise-argument-error
                  who1_0
                  (string-append
                   "(or/c (and/c path-string? complete-path?)\n"
                   "      (cons/c (and/c path-string? complete-path?)\n"
                   "              (and/c path-string? complete-path?))\n"
                   "      #f)")
                  wr-dir_0))
               (void))
             (if (not wr-dir_0)
               procz1
               (let ((exploded-base-dir_0 'not-ready))
                 (let ((exploded-wrt-rel-dir_0 'not-ready))
                   (lambda (v_0)
                     (begin
                       (if (if (eq? exploded-base-dir_0 'not-ready)
                             (path? v_0)
                             #f)
                         (let ((wrt-dir_0
                                (if wr-dir_0
                                  (if (pair? wr-dir_0) (car wr-dir_0) wr-dir_0)
                                  #f)))
                           (let ((exploded-wrt-dir_0 (explode-path wrt-dir_0)))
                             (let ((base-dir_0
                                    (if wr-dir_0
                                      (if (pair? wr-dir_0)
                                        (cdr wr-dir_0)
                                        wr-dir_0)
                                      #f)))
                               (begin
                                 (set! exploded-base-dir_0
                                   (if base-dir_0
                                     (explode-path base-dir_0)
                                     #f))
                                 (set! exploded-wrt-rel-dir_0
                                   (if (eq? base-dir_0 wrt-dir_0)
                                     '()
                                     (let ((exploded-wrt-dir_1
                                            (explode-path wrt-dir_0)))
                                       (let ((base-len_0
                                              (length exploded-base-dir_0)))
                                         (begin
                                           (if who1_0
                                             (if (if (>=
                                                      (length
                                                       exploded-wrt-dir_1)
                                                      base-len_0)
                                                   (let ((lst_0
                                                          exploded-base-dir_0))
                                                     (begin
                                                       (letrec*
                                                        ((for-loop_0
                                                          (|#%name|
                                                           for-loop
                                                           (lambda (result_0
                                                                    lst_1
                                                                    lst_2)
                                                             (begin
                                                               (if (if (pair?
                                                                        lst_1)
                                                                     (pair?
                                                                      lst_2)
                                                                     #f)
                                                                 (let ((a_0
                                                                        (unsafe-car
                                                                         lst_1)))
                                                                   (let ((rest_0
                                                                          (unsafe-cdr
                                                                           lst_1)))
                                                                     (let ((b_0
                                                                            (unsafe-car
                                                                             lst_2)))
                                                                       (let ((rest_1
                                                                              (unsafe-cdr
                                                                               lst_2)))
                                                                         (let ((result_1
                                                                                (let ((result_1
                                                                                       (equal?
                                                                                        a_0
                                                                                        b_0)))
                                                                                  (values
                                                                                   result_1))))
                                                                           (if (if (not
                                                                                    (let ((x_0
                                                                                           (list
                                                                                            a_0)))
                                                                                      (not
                                                                                       result_1)))
                                                                                 (if (not
                                                                                      (let ((x_0
                                                                                             (list
                                                                                              b_0)))
                                                                                        (not
                                                                                         result_1)))
                                                                                   #t
                                                                                   #f)
                                                                                 #f)
                                                                             (for-loop_0
                                                                              result_1
                                                                              rest_0
                                                                              rest_1)
                                                                             result_1))))))
                                                                 result_0))))))
                                                        (for-loop_0
                                                         #t
                                                         exploded-wrt-dir_1
                                                         lst_0))))
                                                   #f)
                                               (void)
                                               (raise-arguments-error
                                                who1_0
                                                "relative-directory pair's first path does not extend second path"
                                                "first path"
                                                wrt-dir_0
                                                "second path"
                                                base-dir_0))
                                             (void))
                                           (list-tail
                                            exploded-wrt-dir_1
                                            base-len_0))))))))))
                         (void))
                       (if exploded-base-dir_0
                         (if (path? v_0)
                           (let ((exploded_0 (explode-path v_0)))
                             (if (let ((lst_0 exploded-base-dir_0))
                                   (begin
                                     (letrec*
                                      ((for-loop_0
                                        (|#%name|
                                         for-loop
                                         (lambda (result_0 lst_1 lst_2)
                                           (begin
                                             (if (if (pair? lst_1)
                                                   (pair? lst_2)
                                                   #f)
                                               (let ((base-p_0
                                                      (unsafe-car lst_1)))
                                                 (let ((rest_0
                                                        (unsafe-cdr lst_1)))
                                                   (let ((p_0
                                                          (unsafe-car lst_2)))
                                                     (let ((rest_1
                                                            (unsafe-cdr
                                                             lst_2)))
                                                       (let ((result_1
                                                              (let ((result_1
                                                                     (equal?
                                                                      base-p_0
                                                                      p_0)))
                                                                (values
                                                                 result_1))))
                                                         (if (if (not
                                                                  (let ((x_0
                                                                         (list
                                                                          base-p_0)))
                                                                    (not
                                                                     result_1)))
                                                               (if (not
                                                                    (let ((x_0
                                                                           (list
                                                                            p_0)))
                                                                      (not
                                                                       result_1)))
                                                                 #t
                                                                 #f)
                                                               #f)
                                                           (for-loop_0
                                                            result_1
                                                            rest_0
                                                            rest_1)
                                                           result_1))))))
                                               result_0))))))
                                      (for-loop_0 #t lst_0 exploded_0))))
                               (if (let ((app_0 (length exploded_0)))
                                     (>= app_0 (length exploded-base-dir_0)))
                                 (let ((app_0 exploded-wrt-rel-dir_0))
                                   (loop_0
                                    app_0
                                    (list-tail
                                     exploded_0
                                     (length exploded-base-dir_0))))
                                 #f)
                               #f))
                           #f)
                         #f)))))))))))))
(define kernel (primitive-table '|#%kernel|))
(define 1/syntax? (hash-ref kernel 'syntax?))
(define 1/syntax-e (hash-ref kernel 'syntax-e))
(define 1/datum->syntax (hash-ref kernel 'datum->syntax))
(define 1/syntax->datum (hash-ref kernel 'syntax->datum))
(define 1/syntax-property (hash-ref kernel 'syntax-property))
(define 1/syntax-property-symbol-keys
  (hash-ref kernel 'syntax-property-symbol-keys))
(define 1/syntax-source (hash-ref kernel 'syntax-source))
(define 1/syntax-line (hash-ref kernel 'syntax-line))
(define 1/syntax-column (hash-ref kernel 'syntax-column))
(define 1/syntax-position (hash-ref kernel 'syntax-position))
(define 1/syntax-span (hash-ref kernel 'syntax-span))
(define correlated? (lambda (e_0) (|#%app| 1/syntax? e_0)))
(define datum->correlated
  (let ((datum->correlated_0
         (|#%name|
          datum->correlated
          (lambda (d3_0 srcloc1_0 props2_0)
            (begin (|#%app| 1/datum->syntax #f d3_0 srcloc1_0 props2_0))))))
    (case-lambda
     ((d_0) (datum->correlated_0 d_0 #f #f))
     ((d_0 srcloc_0 props2_0) (datum->correlated_0 d_0 srcloc_0 props2_0))
     ((d_0 srcloc1_0) (datum->correlated_0 d_0 srcloc1_0 #f)))))
(define correlated-e (lambda (e_0) (|#%app| 1/syntax-e e_0)))
(define correlated-property
  (case-lambda
   ((e_0 k_0) (|#%app| 1/syntax-property e_0 k_0))
   ((e_0 k_0 v_0) (|#%app| 1/syntax-property e_0 k_0 v_0))))
(define correlated-property-symbol-keys
  (lambda (e_0) (|#%app| 1/syntax-property-symbol-keys e_0)))
(define correlated-source (lambda (s_0) (|#%app| 1/syntax-source s_0)))
(define correlated-line (lambda (s_0) (|#%app| 1/syntax-line s_0)))
(define correlated-column (lambda (s_0) (|#%app| 1/syntax-column s_0)))
(define correlated-position (lambda (s_0) (|#%app| 1/syntax-position s_0)))
(define correlated-span (lambda (s_0) (|#%app| 1/syntax-span s_0)))
(define 1/write-byte
  (|#%name|
   write-byte
   (lambda (byte_0 out_0) (begin (write-byte byte_0 out_0)))))
(define 1/write-bytes
  (let ((write-bytes_0
         (|#%name|
          write-bytes
          (lambda (bstr3_0 out4_0 start-pos1_0 end-pos2_0)
            (begin
              (let ((end-pos_0
                     (if (eq? end-pos2_0 unsafe-undefined)
                       (unsafe-bytes-length bstr3_0)
                       end-pos2_0)))
                (write-bytes bstr3_0 out4_0 start-pos1_0 end-pos_0)))))))
    (|#%name|
     write-bytes
     (case-lambda
      ((bstr_0 out_0) (begin (write-bytes_0 bstr_0 out_0 0 unsafe-undefined)))
      ((bstr_0 out_0 start-pos_0 end-pos2_0)
       (write-bytes_0 bstr_0 out_0 start-pos_0 end-pos2_0))
      ((bstr_0 out_0 start-pos1_0)
       (write-bytes_0 bstr_0 out_0 start-pos1_0 unsafe-undefined))))))
(define fasl-graph-def-type 1)
(define fasl-graph-ref-type 2)
(define fasl-false-type 3)
(define fasl-true-type 4)
(define fasl-null-type 5)
(define fasl-void-type 6)
(define fasl-eof-type 7)
(define fasl-integer-type 8)
(define fasl-flonum-type 9)
(define fasl-single-flonum-type 10)
(define fasl-rational-type 11)
(define fasl-complex-type 12)
(define fasl-char-type 13)
(define fasl-symbol-type 14)
(define fasl-unreadable-symbol-type 15)
(define fasl-uninterned-symbol-type 16)
(define fasl-keyword-type 17)
(define fasl-string-type 18)
(define fasl-immutable-string-type 19)
(define fasl-bytes-type 20)
(define fasl-immutable-bytes-type 21)
(define fasl-path-type 22)
(define fasl-relative-path-type 23)
(define fasl-pregexp-type 24)
(define fasl-regexp-type 25)
(define fasl-byte-pregexp-type 26)
(define fasl-byte-regexp-type 27)
(define fasl-list-type 28)
(define fasl-list*-type 29)
(define fasl-pair-type 30)
(define fasl-vector-type 31)
(define fasl-immutable-vector-type 32)
(define fasl-box-type 33)
(define fasl-immutable-box-type 34)
(define fasl-prefab-type 35)
(define fasl-hash-type 36)
(define fasl-immutable-hash-type 37)
(define fasl-srcloc-type 38)
(define fasl-extflonum-type 39)
(define fasl-correlated-type 40)
(define fasl-undefined-type 41)
(define fasl-small-integer-start 100)
(define fasl-lowest-small-integer -10)
(define fasl-highest-small-integer 144)
(define fasl-prefix #vu8(114 97 99 107 101 116 47 102 97 115 108 58))
(define fasl-prefix-length (unsafe-bytes-length fasl-prefix))
(define fasl-hash-eq-variant 0)
(define fasl-hash-equal-variant 1)
(define fasl-hash-eqv-variant 2)
(define s-exp->fasl.1
  (letrec ((procz4 (lambda (x_0) (unsafe-vector-length x_0)))
           (procz3 (lambda (x_0) (vector? x_0)))
           (procz2 (lambda (x_0) (unsafe-vector-length x_0)))
           (procz1 (lambda (x_0) (vector? x_0)))
           (loop_0
            (|#%name|
             loop
             (lambda (external-lift?7_0
                      external-lift_0
                      shared-counter_0
                      shared_0
                      v_0)
               (begin
                 (if (if external-lift_0 (hash-ref external-lift_0 v_0 #f) #f)
                   (void)
                   (if (if external-lift?7_0
                         (|#%app| external-lift?7_0 v_0)
                         #f)
                     (begin
                       (hash-set! external-lift_0 v_0 #t)
                       (unsafe-set-box*!
                        shared-counter_0
                        (add1 (unsafe-unbox* shared-counter_0)))
                       (hash-set!
                        shared_0
                        v_0
                        (- (unsafe-unbox* shared-counter_0))))
                     (if (let ((or-part_0 (symbol? v_0)))
                           (if or-part_0
                             or-part_0
                             (let ((or-part_1 (keyword? v_0)))
                               (if or-part_1
                                 or-part_1
                                 (let ((or-part_2 (string? v_0)))
                                   (if or-part_2
                                     or-part_2
                                     (let ((or-part_3 (bytes? v_0)))
                                       (if or-part_3
                                         or-part_3
                                         (path? v_0)))))))))
                       (do-hash-update
                        'hash-update!
                        #t
                        hash-set!
                        shared_0
                        v_0
                        add1
                        0)
                       (if (pair? v_0)
                         (begin
                           (loop_0
                            external-lift?7_0
                            external-lift_0
                            shared-counter_0
                            shared_0
                            (car v_0))
                           (loop_0
                            external-lift?7_0
                            external-lift_0
                            shared-counter_0
                            shared_0
                            (cdr v_0)))
                         (if (vector? v_0)
                           (begin
                             (call-with-values
                              (lambda ()
                                (begin
                                  (check-vector v_0)
                                  (values v_0 (unsafe-vector-length v_0))))
                              (case-lambda
                               ((vec_0 len_0)
                                (begin
                                  #f
                                  (letrec*
                                   ((for-loop_0
                                     (|#%name|
                                      for-loop
                                      (lambda (pos_0)
                                        (begin
                                          (if (unsafe-fx< pos_0 len_0)
                                            (let ((e_0
                                                   (unsafe-vector-ref
                                                    vec_0
                                                    pos_0)))
                                              (begin
                                                (loop_0
                                                 external-lift?7_0
                                                 external-lift_0
                                                 shared-counter_0
                                                 shared_0
                                                 e_0)
                                                (for-loop_0
                                                 (unsafe-fx+ 1 pos_0))))
                                            (values)))))))
                                   (for-loop_0 0))))
                               (args
                                (raise-binding-result-arity-error 2 args))))
                             (void))
                           (if (hash? v_0)
                             (hash-for-each
                              v_0
                              (lambda (k_0 v_1)
                                (begin
                                  (loop_0
                                   external-lift?7_0
                                   external-lift_0
                                   shared-counter_0
                                   shared_0
                                   k_0)
                                  (loop_0
                                   external-lift?7_0
                                   external-lift_0
                                   shared-counter_0
                                   shared_0
                                   v_1)))
                              #t)
                             (if (box? v_0)
                               (loop_0
                                external-lift?7_0
                                external-lift_0
                                shared-counter_0
                                shared_0
                                (unbox v_0))
                               (let ((c1_0 (prefab-struct-key v_0)))
                                 (if c1_0
                                   (begin
                                     (loop_0
                                      external-lift?7_0
                                      external-lift_0
                                      shared-counter_0
                                      shared_0
                                      c1_0)
                                     (call-with-values
                                      (lambda ()
                                        (normalise-inputs
                                         'in-vector
                                         "vector"
                                         procz1
                                         procz2
                                         (struct->vector v_0)
                                         1
                                         #f
                                         1))
                                      (case-lambda
                                       ((v*_0 start*_0 stop*_0 step*_0)
                                        (begin
                                          #t
                                          (letrec*
                                           ((for-loop_0
                                             (|#%name|
                                              for-loop
                                              (lambda (idx_0)
                                                (begin
                                                  (if (unsafe-fx<
                                                       idx_0
                                                       stop*_0)
                                                    (let ((e_0
                                                           (unsafe-vector-ref
                                                            v*_0
                                                            idx_0)))
                                                      (begin
                                                        (loop_0
                                                         external-lift?7_0
                                                         external-lift_0
                                                         shared-counter_0
                                                         shared_0
                                                         e_0)
                                                        (for-loop_0
                                                         (unsafe-fx+
                                                          idx_0
                                                          1))))
                                                    (values)))))))
                                           (for-loop_0 start*_0))))
                                       (args
                                        (raise-binding-result-arity-error
                                         4
                                         args))))
                                     (void))
                                   (if (srcloc? v_0)
                                     (loop_0
                                      external-lift?7_0
                                      external-lift_0
                                      shared-counter_0
                                      shared_0
                                      (srcloc-source v_0))
                                     (if (|#%app| 1/syntax? v_0)
                                       (begin
                                         (loop_0
                                          external-lift?7_0
                                          external-lift_0
                                          shared-counter_0
                                          shared_0
                                          (|#%app| 1/syntax-e v_0))
                                         (loop_0
                                          external-lift?7_0
                                          external-lift_0
                                          shared-counter_0
                                          shared_0
                                          (|#%app| 1/syntax-source v_0))
                                         (let ((lst_0
                                                (|#%app|
                                                 1/syntax-property-symbol-keys
                                                 v_0)))
                                           (begin
                                             (letrec*
                                              ((for-loop_0
                                                (|#%name|
                                                 for-loop
                                                 (lambda (lst_1)
                                                   (begin
                                                     (if (pair? lst_1)
                                                       (let ((k_0
                                                              (unsafe-car
                                                               lst_1)))
                                                         (let ((rest_0
                                                                (unsafe-cdr
                                                                 lst_1)))
                                                           (begin
                                                             (begin
                                                               (loop_0
                                                                external-lift?7_0
                                                                external-lift_0
                                                                shared-counter_0
                                                                shared_0
                                                                k_0)
                                                               (loop_0
                                                                external-lift?7_0
                                                                external-lift_0
                                                                shared-counter_0
                                                                shared_0
                                                                (|#%app|
                                                                 1/syntax-property
                                                                 v_0
                                                                 k_0)))
                                                             (for-loop_0
                                                              rest_0))))
                                                       (values)))))))
                                              (for-loop_0 lst_0))))
                                         (void))
                                       (void))))))))))))))))
           (loop_1
            (|#%name|
             loop
             (lambda (handle-fail6_0
                      keep-mutable?5_0
                      o_0
                      path->relative-path-elements_0
                      shared-counter_0
                      shared_0
                      v_0)
               (begin
                 (if (not (eq? (hash-ref shared_0 v_0 1) 1))
                   (let ((c_0 (hash-ref shared_0 v_0)))
                     (if (negative? c_0)
                       (begin
                         (write-byte 2 o_0)
                         (write-fasl-integer (sub1 (- c_0)) o_0))
                       (let ((pos_0 (unsafe-unbox* shared-counter_0)))
                         (begin
                           (unsafe-set-box*!
                            shared-counter_0
                            (add1 (unsafe-unbox* shared-counter_0)))
                           (write-byte 1 o_0)
                           (write-fasl-integer pos_0 o_0)
                           (hash-remove! shared_0 v_0)
                           (loop_1
                            handle-fail6_0
                            keep-mutable?5_0
                            o_0
                            path->relative-path-elements_0
                            shared-counter_0
                            shared_0
                            v_0)
                           (hash-set! shared_0 v_0 (- (add1 pos_0)))))))
                   (if (not v_0)
                     (write-byte 3 o_0)
                     (if (eq? v_0 #t)
                       (write-byte 4 o_0)
                       (if (null? v_0)
                         (write-byte 5 o_0)
                         (if (void? v_0)
                           (write-byte 6 o_0)
                           (if (eof-object? v_0)
                             (write-byte 7 o_0)
                             (if (exact-integer? v_0)
                               (if (<= -10 v_0 144)
                                 (let ((byte_0 (+ 100 (- v_0 -10))))
                                   (write-byte byte_0 o_0))
                                 (begin
                                   (write-byte 8 o_0)
                                   (write-fasl-integer v_0 o_0)))
                               (if (flonum? v_0)
                                 (begin
                                   (write-byte 9 o_0)
                                   (1/write-bytes
                                    (if (eqv? v_0 +nan.0)
                                      #vu8(0 0 0 0 0 0 248 127)
                                      (real->floating-point-bytes v_0 8 #f))
                                    o_0))
                                 (if (single-flonum? v_0)
                                   (begin
                                     (write-byte 10 o_0)
                                     (1/write-bytes
                                      (if (eqv?
                                           v_0
                                           (real->single-flonum +nan.0))
                                        #vu8(0 0 192 127)
                                        (real->floating-point-bytes v_0 4 #f))
                                      o_0))
                                   (if (extflonum? v_0)
                                     (begin
                                       (write-byte 39 o_0)
                                       (let ((bstr_0
                                              (string->bytes/utf-8
                                               (format "~a" v_0))))
                                         (begin
                                           (write-fasl-integer
                                            (unsafe-bytes-length bstr_0)
                                            o_0)
                                           (1/write-bytes bstr_0 o_0))))
                                     (if (rational? v_0)
                                       (begin
                                         (write-byte 11 o_0)
                                         (loop_1
                                          handle-fail6_0
                                          keep-mutable?5_0
                                          o_0
                                          path->relative-path-elements_0
                                          shared-counter_0
                                          shared_0
                                          (numerator v_0))
                                         (loop_1
                                          handle-fail6_0
                                          keep-mutable?5_0
                                          o_0
                                          path->relative-path-elements_0
                                          shared-counter_0
                                          shared_0
                                          (denominator v_0)))
                                       (if (complex? v_0)
                                         (begin
                                           (write-byte 12 o_0)
                                           (loop_1
                                            handle-fail6_0
                                            keep-mutable?5_0
                                            o_0
                                            path->relative-path-elements_0
                                            shared-counter_0
                                            shared_0
                                            (real-part v_0))
                                           (loop_1
                                            handle-fail6_0
                                            keep-mutable?5_0
                                            o_0
                                            path->relative-path-elements_0
                                            shared-counter_0
                                            shared_0
                                            (imag-part v_0)))
                                         (if (char? v_0)
                                           (begin
                                             (write-byte 13 o_0)
                                             (write-fasl-integer
                                              (char->integer v_0)
                                              o_0))
                                           (if (symbol? v_0)
                                             (begin
                                               (if (symbol-interned? v_0)
                                                 (write-byte 14 o_0)
                                                 (if (symbol-unreadable? v_0)
                                                   (write-byte 15 o_0)
                                                   (write-byte 16 o_0)))
                                               (let ((bstr_0
                                                      (string->bytes/utf-8
                                                       (symbol->string v_0))))
                                                 (begin
                                                   (write-fasl-integer
                                                    (unsafe-bytes-length
                                                     bstr_0)
                                                    o_0)
                                                   (1/write-bytes
                                                    bstr_0
                                                    o_0))))
                                             (if (keyword? v_0)
                                               (begin
                                                 (write-byte 17 o_0)
                                                 (let ((bstr_0
                                                        (string->bytes/utf-8
                                                         (keyword->string
                                                          v_0))))
                                                   (begin
                                                     (write-fasl-integer
                                                      (unsafe-bytes-length
                                                       bstr_0)
                                                      o_0)
                                                     (1/write-bytes
                                                      bstr_0
                                                      o_0))))
                                               (if (string? v_0)
                                                 (begin
                                                   (write-fasl-integer
                                                    (if (treat-immutable?_0
                                                         keep-mutable?5_0
                                                         v_0)
                                                      19
                                                      18)
                                                    o_0)
                                                   (write-fasl-string v_0 o_0))
                                                 (if (bytes? v_0)
                                                   (begin
                                                     (write-fasl-integer
                                                      (if (treat-immutable?_0
                                                           keep-mutable?5_0
                                                           v_0)
                                                        21
                                                        20)
                                                      o_0)
                                                     (write-fasl-bytes
                                                      v_0
                                                      o_0))
                                                   (if (path-for-some-system?
                                                        v_0)
                                                     (let ((rel-elems_0
                                                            (|#%app|
                                                             path->relative-path-elements_0
                                                             v_0)))
                                                       (if rel-elems_0
                                                         (begin
                                                           (write-byte 23 o_0)
                                                           (loop_1
                                                            handle-fail6_0
                                                            keep-mutable?5_0
                                                            o_0
                                                            path->relative-path-elements_0
                                                            shared-counter_0
                                                            shared_0
                                                            rel-elems_0))
                                                         (begin
                                                           (write-byte 22 o_0)
                                                           (write-fasl-bytes
                                                            (path->bytes v_0)
                                                            o_0)
                                                           (loop_1
                                                            handle-fail6_0
                                                            keep-mutable?5_0
                                                            o_0
                                                            path->relative-path-elements_0
                                                            shared-counter_0
                                                            shared_0
                                                            (path-convention-type
                                                             v_0)))))
                                                     (if (if (srcloc? v_0)
                                                           (let ((src_0
                                                                  (srcloc-source
                                                                   v_0)))
                                                             (let ((or-part_0
                                                                    (not
                                                                     src_0)))
                                                               (if or-part_0
                                                                 or-part_0
                                                                 (let ((or-part_1
                                                                        (path-for-some-system?
                                                                         src_0)))
                                                                   (if or-part_1
                                                                     or-part_1
                                                                     (let ((or-part_2
                                                                            (string?
                                                                             src_0)))
                                                                       (if or-part_2
                                                                         or-part_2
                                                                         (let ((or-part_3
                                                                                (bytes?
                                                                                 src_0)))
                                                                           (if or-part_3
                                                                             or-part_3
                                                                             (symbol?
                                                                              src_0))))))))))
                                                           #f)
                                                       (let ((src_0
                                                              (srcloc-source
                                                               v_0)))
                                                         (let ((new-src_0
                                                                (if (if (path?
                                                                         src_0)
                                                                      (not
                                                                       (|#%app|
                                                                        path->relative-path-elements_0
                                                                        src_0))
                                                                      #f)
                                                                  (truncate-path
                                                                   src_0)
                                                                  src_0)))
                                                           (begin
                                                             (write-fasl-integer
                                                              38
                                                              o_0)
                                                             (loop_1
                                                              handle-fail6_0
                                                              keep-mutable?5_0
                                                              o_0
                                                              path->relative-path-elements_0
                                                              shared-counter_0
                                                              shared_0
                                                              new-src_0)
                                                             (loop_1
                                                              handle-fail6_0
                                                              keep-mutable?5_0
                                                              o_0
                                                              path->relative-path-elements_0
                                                              shared-counter_0
                                                              shared_0
                                                              (srcloc-line
                                                               v_0))
                                                             (loop_1
                                                              handle-fail6_0
                                                              keep-mutable?5_0
                                                              o_0
                                                              path->relative-path-elements_0
                                                              shared-counter_0
                                                              shared_0
                                                              (srcloc-column
                                                               v_0))
                                                             (loop_1
                                                              handle-fail6_0
                                                              keep-mutable?5_0
                                                              o_0
                                                              path->relative-path-elements_0
                                                              shared-counter_0
                                                              shared_0
                                                              (srcloc-position
                                                               v_0))
                                                             (loop_1
                                                              handle-fail6_0
                                                              keep-mutable?5_0
                                                              o_0
                                                              path->relative-path-elements_0
                                                              shared-counter_0
                                                              shared_0
                                                              (srcloc-span
                                                               v_0)))))
                                                       (if (pair? v_0)
                                                         (if (pair? (cdr v_0))
                                                           (call-with-values
                                                            (lambda ()
                                                              (letrec*
                                                               ((loop_2
                                                                 (|#%name|
                                                                  loop
                                                                  (lambda (v_1
                                                                           len_0)
                                                                    (begin
                                                                      (if (null?
                                                                           v_1)
                                                                        (values
                                                                         len_0
                                                                         #t)
                                                                        (if (pair?
                                                                             v_1)
                                                                          (let ((app_0
                                                                                 (cdr
                                                                                  v_1)))
                                                                            (loop_2
                                                                             app_0
                                                                             (add1
                                                                              len_0)))
                                                                          (values
                                                                           len_0
                                                                           #f))))))))
                                                               (loop_2 v_0 0)))
                                                            (case-lambda
                                                             ((n_0
                                                               normal-list?_0)
                                                              (begin
                                                                (let ((byte_0
                                                                       (if normal-list?_0
                                                                         28
                                                                         29)))
                                                                  (write-byte
                                                                   byte_0
                                                                   o_0))
                                                                (write-fasl-integer
                                                                 n_0
                                                                 o_0)
                                                                (letrec*
                                                                 ((ploop_0
                                                                   (|#%name|
                                                                    ploop
                                                                    (lambda (v_1)
                                                                      (begin
                                                                        (if (pair?
                                                                             v_1)
                                                                          (begin
                                                                            (loop_1
                                                                             handle-fail6_0
                                                                             keep-mutable?5_0
                                                                             o_0
                                                                             path->relative-path-elements_0
                                                                             shared-counter_0
                                                                             shared_0
                                                                             (car
                                                                              v_1))
                                                                            (ploop_0
                                                                             (cdr
                                                                              v_1)))
                                                                          (if normal-list?_0
                                                                            (void)
                                                                            (loop_1
                                                                             handle-fail6_0
                                                                             keep-mutable?5_0
                                                                             o_0
                                                                             path->relative-path-elements_0
                                                                             shared-counter_0
                                                                             shared_0
                                                                             v_1))))))))
                                                                 (ploop_0
                                                                  v_0))))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               2
                                                               args))))
                                                           (begin
                                                             (write-byte
                                                              30
                                                              o_0)
                                                             (loop_1
                                                              handle-fail6_0
                                                              keep-mutable?5_0
                                                              o_0
                                                              path->relative-path-elements_0
                                                              shared-counter_0
                                                              shared_0
                                                              (car v_0))
                                                             (loop_1
                                                              handle-fail6_0
                                                              keep-mutable?5_0
                                                              o_0
                                                              path->relative-path-elements_0
                                                              shared-counter_0
                                                              shared_0
                                                              (cdr v_0))))
                                                         (if (vector? v_0)
                                                           (begin
                                                             (let ((byte_0
                                                                    (if (treat-immutable?_0
                                                                         keep-mutable?5_0
                                                                         v_0)
                                                                      32
                                                                      31)))
                                                               (write-byte
                                                                byte_0
                                                                o_0))
                                                             (write-fasl-integer
                                                              (vector-length
                                                               v_0)
                                                              o_0)
                                                             (call-with-values
                                                              (lambda ()
                                                                (begin
                                                                  (check-vector
                                                                   v_0)
                                                                  (values
                                                                   v_0
                                                                   (unsafe-vector-length
                                                                    v_0))))
                                                              (case-lambda
                                                               ((vec_0 len_0)
                                                                (begin
                                                                  #f
                                                                  (letrec*
                                                                   ((for-loop_0
                                                                     (|#%name|
                                                                      for-loop
                                                                      (lambda (pos_0)
                                                                        (begin
                                                                          (if (unsafe-fx<
                                                                               pos_0
                                                                               len_0)
                                                                            (let ((e_0
                                                                                   (unsafe-vector-ref
                                                                                    vec_0
                                                                                    pos_0)))
                                                                              (begin
                                                                                (loop_1
                                                                                 handle-fail6_0
                                                                                 keep-mutable?5_0
                                                                                 o_0
                                                                                 path->relative-path-elements_0
                                                                                 shared-counter_0
                                                                                 shared_0
                                                                                 e_0)
                                                                                (for-loop_0
                                                                                 (unsafe-fx+
                                                                                  1
                                                                                  pos_0))))
                                                                            (values)))))))
                                                                   (for-loop_0
                                                                    0))))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 2
                                                                 args))))
                                                             (void))
                                                           (if (box? v_0)
                                                             (begin
                                                               (let ((byte_0
                                                                      (if (treat-immutable?_0
                                                                           keep-mutable?5_0
                                                                           v_0)
                                                                        34
                                                                        33)))
                                                                 (write-byte
                                                                  byte_0
                                                                  o_0))
                                                               (loop_1
                                                                handle-fail6_0
                                                                keep-mutable?5_0
                                                                o_0
                                                                path->relative-path-elements_0
                                                                shared-counter_0
                                                                shared_0
                                                                (unbox v_0)))
                                                             (let ((c2_0
                                                                    (prefab-struct-key
                                                                     v_0)))
                                                               (if c2_0
                                                                 (begin
                                                                   (write-byte
                                                                    35
                                                                    o_0)
                                                                   (begin
                                                                     (loop_1
                                                                      handle-fail6_0
                                                                      keep-mutable?5_0
                                                                      o_0
                                                                      path->relative-path-elements_0
                                                                      shared-counter_0
                                                                      shared_0
                                                                      c2_0)
                                                                     (let ((vec_0
                                                                            (struct->vector
                                                                             v_0)))
                                                                       (begin
                                                                         (write-fasl-integer
                                                                          (sub1
                                                                           (vector-length
                                                                            vec_0))
                                                                          o_0)
                                                                         (call-with-values
                                                                          (lambda ()
                                                                            (normalise-inputs
                                                                             'in-vector
                                                                             "vector"
                                                                             procz3
                                                                             procz4
                                                                             vec_0
                                                                             1
                                                                             #f
                                                                             1))
                                                                          (case-lambda
                                                                           ((v*_0
                                                                             start*_0
                                                                             stop*_0
                                                                             step*_0)
                                                                            (begin
                                                                              #t
                                                                              (letrec*
                                                                               ((for-loop_0
                                                                                 (|#%name|
                                                                                  for-loop
                                                                                  (lambda (idx_0)
                                                                                    (begin
                                                                                      (if (unsafe-fx<
                                                                                           idx_0
                                                                                           stop*_0)
                                                                                        (let ((e_0
                                                                                               (unsafe-vector-ref
                                                                                                v*_0
                                                                                                idx_0)))
                                                                                          (begin
                                                                                            (loop_1
                                                                                             handle-fail6_0
                                                                                             keep-mutable?5_0
                                                                                             o_0
                                                                                             path->relative-path-elements_0
                                                                                             shared-counter_0
                                                                                             shared_0
                                                                                             e_0)
                                                                                            (for-loop_0
                                                                                             (unsafe-fx+
                                                                                              idx_0
                                                                                              1))))
                                                                                        (values)))))))
                                                                               (for-loop_0
                                                                                start*_0))))
                                                                           (args
                                                                            (raise-binding-result-arity-error
                                                                             4
                                                                             args))))
                                                                         (void)))))
                                                                 (if (hash?
                                                                      v_0)
                                                                   (begin
                                                                     (let ((byte_0
                                                                            (if (treat-immutable?_0
                                                                                 keep-mutable?5_0
                                                                                 v_0)
                                                                              37
                                                                              36)))
                                                                       (write-byte
                                                                        byte_0
                                                                        o_0))
                                                                     (let ((byte_0
                                                                            (if (hash-eq?
                                                                                 v_0)
                                                                              0
                                                                              (if (hash-eqv?
                                                                                   v_0)
                                                                                2
                                                                                1))))
                                                                       (write-byte
                                                                        byte_0
                                                                        o_0))
                                                                     (write-fasl-integer
                                                                      (hash-count
                                                                       v_0)
                                                                      o_0)
                                                                     (hash-for-each
                                                                      v_0
                                                                      (lambda (k_0
                                                                               v_1)
                                                                        (begin
                                                                          (loop_1
                                                                           handle-fail6_0
                                                                           keep-mutable?5_0
                                                                           o_0
                                                                           path->relative-path-elements_0
                                                                           shared-counter_0
                                                                           shared_0
                                                                           k_0)
                                                                          (loop_1
                                                                           handle-fail6_0
                                                                           keep-mutable?5_0
                                                                           o_0
                                                                           path->relative-path-elements_0
                                                                           shared-counter_0
                                                                           shared_0
                                                                           v_1)))
                                                                      #t))
                                                                   (if (regexp?
                                                                        v_0)
                                                                     (begin
                                                                       (let ((byte_0
                                                                              (if (pregexp?
                                                                                   v_0)
                                                                                24
                                                                                25)))
                                                                         (write-byte
                                                                          byte_0
                                                                          o_0))
                                                                       (write-fasl-string
                                                                        (object-name
                                                                         v_0)
                                                                        o_0))
                                                                     (if (byte-regexp?
                                                                          v_0)
                                                                       (begin
                                                                         (let ((byte_0
                                                                                (if (byte-pregexp?
                                                                                     v_0)
                                                                                  26
                                                                                  27)))
                                                                           (write-byte
                                                                            byte_0
                                                                            o_0))
                                                                         (write-fasl-bytes
                                                                          (object-name
                                                                           v_0)
                                                                          o_0))
                                                                       (if (|#%app|
                                                                            1/syntax?
                                                                            v_0)
                                                                         (begin
                                                                           (write-byte
                                                                            40
                                                                            o_0)
                                                                           (loop_1
                                                                            handle-fail6_0
                                                                            keep-mutable?5_0
                                                                            o_0
                                                                            path->relative-path-elements_0
                                                                            shared-counter_0
                                                                            shared_0
                                                                            (|#%app|
                                                                             1/syntax-e
                                                                             v_0))
                                                                           (loop_1
                                                                            handle-fail6_0
                                                                            keep-mutable?5_0
                                                                            o_0
                                                                            path->relative-path-elements_0
                                                                            shared-counter_0
                                                                            shared_0
                                                                            (let ((app_0
                                                                                   (|#%app|
                                                                                    1/syntax-source
                                                                                    v_0)))
                                                                              (let ((app_1
                                                                                     (|#%app|
                                                                                      1/syntax-line
                                                                                      v_0)))
                                                                                (let ((app_2
                                                                                       (|#%app|
                                                                                        1/syntax-column
                                                                                        v_0)))
                                                                                  (let ((app_3
                                                                                         (|#%app|
                                                                                          1/syntax-position
                                                                                          v_0)))
                                                                                    (unsafe-make-srcloc
                                                                                     app_0
                                                                                     app_1
                                                                                     app_2
                                                                                     app_3
                                                                                     (|#%app|
                                                                                      1/syntax-span
                                                                                      v_0)))))))
                                                                           (loop_1
                                                                            handle-fail6_0
                                                                            keep-mutable?5_0
                                                                            o_0
                                                                            path->relative-path-elements_0
                                                                            shared-counter_0
                                                                            shared_0
                                                                            (reverse$1
                                                                             (let ((lst_0
                                                                                    (|#%app|
                                                                                     1/syntax-property-symbol-keys
                                                                                     v_0)))
                                                                               (begin
                                                                                 (letrec*
                                                                                  ((for-loop_0
                                                                                    (|#%name|
                                                                                     for-loop
                                                                                     (lambda (fold-var_0
                                                                                              lst_1)
                                                                                       (begin
                                                                                         (if (pair?
                                                                                              lst_1)
                                                                                           (let ((k_0
                                                                                                  (unsafe-car
                                                                                                   lst_1)))
                                                                                             (let ((rest_0
                                                                                                    (unsafe-cdr
                                                                                                     lst_1)))
                                                                                               (let ((fold-var_1
                                                                                                      (let ((fold-var_1
                                                                                                             (cons
                                                                                                              (cons
                                                                                                               k_0
                                                                                                               (|#%app|
                                                                                                                1/syntax-property
                                                                                                                v_0
                                                                                                                k_0))
                                                                                                              fold-var_0)))
                                                                                                        (values
                                                                                                         fold-var_1))))
                                                                                                 (for-loop_0
                                                                                                  fold-var_1
                                                                                                  rest_0))))
                                                                                           fold-var_0))))))
                                                                                  (for-loop_0
                                                                                   null
                                                                                   lst_0)))))))
                                                                         (if (eq?
                                                                              v_0
                                                                              unsafe-undefined)
                                                                           (write-byte
                                                                            41
                                                                            o_0)
                                                                           (if handle-fail6_0
                                                                             (loop_1
                                                                              handle-fail6_0
                                                                              keep-mutable?5_0
                                                                              o_0
                                                                              path->relative-path-elements_0
                                                                              shared-counter_0
                                                                              shared_0
                                                                              (|#%app|
                                                                               handle-fail6_0
                                                                               v_0))
                                                                             (raise-arguments-error
                                                                              's-exp->fasl
                                                                              "cannot write value"
                                                                              "value"
                                                                              v_0)))))))))))))))))))))))))))))))))))
           (treat-immutable?_0
            (|#%name|
             treat-immutable?
             (lambda (keep-mutable?5_0 v_0)
               (begin
                 (let ((or-part_0 (not keep-mutable?5_0)))
                   (if or-part_0 or-part_0 (immutable? v_0))))))))
    (|#%name|
     s-exp->fasl
     (lambda (external-lift?7_0
              handle-fail6_0
              keep-mutable?5_0
              v12_0
              orig-o11_0)
       (begin
         (begin
           (if orig-o11_0
             (if (output-port? orig-o11_0)
               (void)
               (raise-argument-error
                's-exp->fasl
                "(or/c output-port? #f)"
                orig-o11_0))
             (void))
           (begin
             (if handle-fail6_0
               (if (if (procedure? handle-fail6_0)
                     (procedure-arity-includes? handle-fail6_0 1)
                     #f)
                 (void)
                 (raise-argument-error
                  's-exp->fasl
                  "(or/c (procedure-arity-includes/c 1) #f)"
                  handle-fail6_0))
               (void))
             (begin
               (if external-lift?7_0
                 (if (if (procedure? external-lift?7_0)
                       (procedure-arity-includes? external-lift?7_0 1)
                       #f)
                   (void)
                   (raise-argument-error
                    's-exp->fasl
                    "(or/c (procedure-arity-includes/c 1) #f)"
                    external-lift?7_0))
                 (void))
               (let ((o_0 (if orig-o11_0 orig-o11_0 (open-output-bytes))))
                 (let ((shared_0 (make-hasheq)))
                   (let ((external-lift_0
                          (if external-lift?7_0 (make-hasheq) #f)))
                     (let ((shared-counter_0 (box 0)))
                       (begin
                         (loop_0
                          external-lift?7_0
                          external-lift_0
                          shared-counter_0
                          shared_0
                          v12_0)
                         (let ((path->relative-path-elements_0
                                (make-path->relative-path-elements.1
                                 #f
                                 unsafe-undefined)))
                           (begin
                             (1/write-bytes fasl-prefix o_0)
                             (let ((bstr_0
                                    (let ((o_1 (open-output-bytes)))
                                      (begin
                                        (loop_1
                                         handle-fail6_0
                                         keep-mutable?5_0
                                         o_1
                                         path->relative-path-elements_0
                                         shared-counter_0
                                         shared_0
                                         v12_0)
                                        (get-output-bytes o_1 #t)))))
                               (begin
                                 (write-fasl-integer
                                  (unsafe-unbox* shared-counter_0)
                                  o_0)
                                 (write-fasl-integer
                                  (unsafe-bytes-length bstr_0)
                                  o_0)
                                 (1/write-bytes bstr_0 o_0)
                                 (if orig-o11_0
                                   (void)
                                   (get-output-bytes o_0)))))))))))))))))))
(define fasl->s-exp.1
  (letrec ((intern_0
            (|#%name|
             intern
             (lambda (datum-intern?14_0 v_0)
               (begin (if datum-intern?14_0 (datum-intern-literal v_0) v_0)))))
           (loop_0
            (|#%name|
             loop
             (lambda (datum-intern?14_0 i_0 shared-count_0 shared_0)
               (begin
                 (let ((type_0 (read-byte/no-eof i_0)))
                   (let ((index_0
                          (if (fixnum-for-every-system? type_0)
                            (if (if (unsafe-fx>= type_0 1)
                                  (unsafe-fx< type_0 42)
                                  #f)
                              (let ((tbl_0
                                     '#(1
                                        2
                                        3
                                        4
                                        5
                                        6
                                        7
                                        8
                                        9
                                        10
                                        12
                                        13
                                        14
                                        15
                                        16
                                        17
                                        18
                                        19
                                        20
                                        21
                                        22
                                        23
                                        24
                                        25
                                        26
                                        27
                                        28
                                        29
                                        31
                                        30
                                        32
                                        32
                                        33
                                        34
                                        35
                                        36
                                        37
                                        38
                                        11
                                        39
                                        40)))
                                (unsafe-vector*-ref
                                 tbl_0
                                 (unsafe-fx- type_0 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)
                             (if (>= type_0 100)
                               (+ (- type_0 100) -10)
                               (read-error
                                "unrecognized fasl tag"
                                "tag"
                                type_0))
                             (if (unsafe-fx< index_0 2)
                               (let ((pos_0 (read-fasl-integer i_0)))
                                 (let ((v_0
                                        (loop_0
                                         datum-intern?14_0
                                         i_0
                                         shared-count_0
                                         shared_0)))
                                   (begin
                                     (if (< pos_0 shared-count_0)
                                       (void)
                                       (read-error "bad graph index"))
                                     (vector-set! shared_0 pos_0 v_0)
                                     v_0)))
                               (if (unsafe-fx< index_0 3)
                                 (let ((pos_0 (read-fasl-integer i_0)))
                                   (begin
                                     (if (< pos_0 shared-count_0)
                                       (void)
                                       (read-error "bad graph index"))
                                     (vector-ref shared_0 pos_0)))
                                 #f)))
                           (if (unsafe-fx< index_0 6)
                             (if (unsafe-fx< index_0 5) #t null)
                             (if (unsafe-fx< index_0 7)
                               (void)
                               (if (unsafe-fx< index_0 8)
                                 eof
                                 (intern_0
                                  datum-intern?14_0
                                  (read-fasl-integer i_0))))))
                         (if (unsafe-fx< index_0 14)
                           (if (unsafe-fx< index_0 11)
                             (if (unsafe-fx< index_0 10)
                               (floating-point-bytes->real
                                (read-bytes/exactly 8 i_0)
                                #f)
                               (real->single-flonum
                                (floating-point-bytes->real
                                 (read-bytes/exactly 4 i_0)
                                 #f)))
                             (if (unsafe-fx< index_0 12)
                               (let ((bstr_0
                                      (read-bytes/exactly
                                       (read-fasl-integer i_0)
                                       i_0)))
                                 (string->number
                                  (bytes->string/utf-8 bstr_0)
                                  10
                                  'read))
                               (if (unsafe-fx< index_0 13)
                                 (intern_0
                                  datum-intern?14_0
                                  (let ((app_0
                                         (loop_0
                                          datum-intern?14_0
                                          i_0
                                          shared-count_0
                                          shared_0)))
                                    (/
                                     app_0
                                     (loop_0
                                      datum-intern?14_0
                                      i_0
                                      shared-count_0
                                      shared_0))))
                                 (intern_0
                                  datum-intern?14_0
                                  (let ((app_0
                                         (loop_0
                                          datum-intern?14_0
                                          i_0
                                          shared-count_0
                                          shared_0)))
                                    (make-rectangular
                                     app_0
                                     (loop_0
                                      datum-intern?14_0
                                      i_0
                                      shared-count_0
                                      shared_0)))))))
                           (if (unsafe-fx< index_0 16)
                             (if (unsafe-fx< index_0 15)
                               (intern_0
                                datum-intern?14_0
                                (integer->char (read-fasl-integer i_0)))
                               (string->symbol (read-fasl-string i_0)))
                             (if (unsafe-fx< index_0 17)
                               (string->unreadable-symbol
                                (read-fasl-string i_0))
                               (if (unsafe-fx< index_0 18)
                                 (string->uninterned-symbol
                                  (read-fasl-string i_0))
                                 (if (unsafe-fx< index_0 19)
                                   (string->keyword (read-fasl-string i_0))
                                   (read-fasl-string i_0)))))))
                       (if (unsafe-fx< index_0 30)
                         (if (unsafe-fx< index_0 24)
                           (if (unsafe-fx< index_0 21)
                             (intern_0
                              datum-intern?14_0
                              (string->immutable-string
                               (read-fasl-string i_0)))
                             (if (unsafe-fx< index_0 22)
                               (read-fasl-bytes i_0)
                               (if (unsafe-fx< index_0 23)
                                 (intern_0
                                  datum-intern?14_0
                                  (bytes->immutable-bytes
                                   (read-fasl-bytes i_0)))
                                 (let ((app_0 (read-fasl-bytes i_0)))
                                   (bytes->path
                                    app_0
                                    (loop_0
                                     datum-intern?14_0
                                     i_0
                                     shared-count_0
                                     shared_0))))))
                           (if (unsafe-fx< index_0 26)
                             (if (unsafe-fx< index_0 25)
                               (let ((wrt-dir_0
                                      (current-load-relative-directory)))
                                 (let ((rel-elems_0
                                        (reverse$1
                                         (let ((lst_0
                                                (loop_0
                                                 datum-intern?14_0
                                                 i_0
                                                 shared-count_0
                                                 shared_0)))
                                           (begin
                                             (letrec*
                                              ((for-loop_0
                                                (|#%name|
                                                 for-loop
                                                 (lambda (fold-var_0 lst_1)
                                                   (begin
                                                     (if (pair? lst_1)
                                                       (let ((p_0
                                                              (unsafe-car
                                                               lst_1)))
                                                         (let ((rest_0
                                                                (unsafe-cdr
                                                                 lst_1)))
                                                           (let ((fold-var_1
                                                                  (let ((fold-var_1
                                                                         (cons
                                                                          (if (bytes?
                                                                               p_0)
                                                                            (bytes->path-element
                                                                             p_0)
                                                                            p_0)
                                                                          fold-var_0)))
                                                                    (values
                                                                     fold-var_1))))
                                                             (for-loop_0
                                                              fold-var_1
                                                              rest_0))))
                                                       fold-var_0))))))
                                              (for-loop_0 null lst_0)))))))
                                   (if wrt-dir_0
                                     (apply build-path wrt-dir_0 rel-elems_0)
                                     (if (null? rel-elems_0)
                                       (build-path 'same)
                                       (apply build-path rel-elems_0)))))
                               (intern_0
                                datum-intern?14_0
                                (pregexp (read-fasl-string i_0))))
                             (if (unsafe-fx< index_0 27)
                               (intern_0
                                datum-intern?14_0
                                (regexp (read-fasl-string i_0)))
                               (if (unsafe-fx< index_0 28)
                                 (intern_0
                                  datum-intern?14_0
                                  (byte-pregexp (read-fasl-bytes i_0)))
                                 (if (unsafe-fx< index_0 29)
                                   (intern_0
                                    datum-intern?14_0
                                    (byte-regexp (read-fasl-bytes i_0)))
                                   (let ((len_0 (read-fasl-integer i_0)))
                                     (reverse$1
                                      (begin
                                        (letrec*
                                         ((for-loop_0
                                           (|#%name|
                                            for-loop
                                            (lambda (fold-var_0 pos_0)
                                              (begin
                                                (if (< pos_0 len_0)
                                                  (let ((fold-var_1
                                                         (let ((fold-var_1
                                                                (cons
                                                                 (loop_0
                                                                  datum-intern?14_0
                                                                  i_0
                                                                  shared-count_0
                                                                  shared_0)
                                                                 fold-var_0)))
                                                           (values
                                                            fold-var_1))))
                                                    (for-loop_0
                                                     fold-var_1
                                                     (+ pos_0 1)))
                                                  fold-var_0))))))
                                         (for-loop_0 null 0))))))))))
                         (if (unsafe-fx< index_0 35)
                           (if (unsafe-fx< index_0 32)
                             (if (unsafe-fx< index_0 31)
                               (let ((app_0
                                      (loop_0
                                       datum-intern?14_0
                                       i_0
                                       shared-count_0
                                       shared_0)))
                                 (cons
                                  app_0
                                  (loop_0
                                   datum-intern?14_0
                                   i_0
                                   shared-count_0
                                   shared_0)))
                               (let ((len_0 (read-fasl-integer i_0)))
                                 (ploop_0
                                  datum-intern?14_0
                                  i_0
                                  shared-count_0
                                  shared_0
                                  len_0)))
                             (if (unsafe-fx< index_0 33)
                               (let ((len_0 (read-fasl-integer i_0)))
                                 (let ((vec_0
                                        (begin
                                          (if (exact-nonnegative-integer?
                                               len_0)
                                            (void)
                                            (raise-argument-error
                                             'for/vector
                                             "exact-nonnegative-integer?"
                                             len_0))
                                          (let ((v_0 (make-vector len_0 0)))
                                            (begin
                                              (if (zero? len_0)
                                                (void)
                                                (begin
                                                  (letrec*
                                                   ((for-loop_0
                                                     (|#%name|
                                                      for-loop
                                                      (lambda (i_1 pos_0)
                                                        (begin
                                                          (if (< pos_0 len_0)
                                                            (let ((i_2
                                                                   (let ((i_2
                                                                          (begin
                                                                            (unsafe-vector*-set!
                                                                             v_0
                                                                             i_1
                                                                             (loop_0
                                                                              datum-intern?14_0
                                                                              i_0
                                                                              shared-count_0
                                                                              shared_0))
                                                                            (unsafe-fx+
                                                                             1
                                                                             i_1))))
                                                                     (values
                                                                      i_2))))
                                                              (if (if (not
                                                                       (let ((x_0
                                                                              (list
                                                                               pos_0)))
                                                                         (unsafe-fx=
                                                                          i_2
                                                                          len_0)))
                                                                    #t
                                                                    #f)
                                                                (for-loop_0
                                                                 i_2
                                                                 (+ pos_0 1))
                                                                i_2))
                                                            i_1))))))
                                                   (for-loop_0 0 0))))
                                              v_0)))))
                                   (if (eqv? type_0 32)
                                     (vector->immutable-vector vec_0)
                                     vec_0)))
                               (if (unsafe-fx< index_0 34)
                                 (box
                                  (loop_0
                                   datum-intern?14_0
                                   i_0
                                   shared-count_0
                                   shared_0))
                                 (box-immutable
                                  (loop_0
                                   datum-intern?14_0
                                   i_0
                                   shared-count_0
                                   shared_0)))))
                           (if (unsafe-fx< index_0 37)
                             (if (unsafe-fx< index_0 36)
                               (let ((key_0
                                      (loop_0
                                       datum-intern?14_0
                                       i_0
                                       shared-count_0
                                       shared_0)))
                                 (let ((len_0 (read-fasl-integer i_0)))
                                   (apply
                                    make-prefab-struct
                                    key_0
                                    (reverse$1
                                     (begin
                                       (letrec*
                                        ((for-loop_0
                                          (|#%name|
                                           for-loop
                                           (lambda (fold-var_0 pos_0)
                                             (begin
                                               (if (< pos_0 len_0)
                                                 (let ((fold-var_1
                                                        (let ((fold-var_1
                                                               (cons
                                                                (loop_0
                                                                 datum-intern?14_0
                                                                 i_0
                                                                 shared-count_0
                                                                 shared_0)
                                                                fold-var_0)))
                                                          (values
                                                           fold-var_1))))
                                                   (for-loop_0
                                                    fold-var_1
                                                    (+ pos_0 1)))
                                                 fold-var_0))))))
                                        (for-loop_0 null 0)))))))
                               (let ((ht_0
                                      (let ((tmp_0 (read-byte/no-eof i_0)))
                                        (if (eq? tmp_0 0)
                                          (make-hasheq)
                                          (if (eq? tmp_0 2)
                                            (make-hasheqv)
                                            (make-hash))))))
                                 (let ((len_0 (read-fasl-integer i_0)))
                                   (begin
                                     (begin
                                       (letrec*
                                        ((for-loop_0
                                          (|#%name|
                                           for-loop
                                           (lambda (pos_0)
                                             (begin
                                               (if (< pos_0 len_0)
                                                 (begin
                                                   (let ((app_0
                                                          (loop_0
                                                           datum-intern?14_0
                                                           i_0
                                                           shared-count_0
                                                           shared_0)))
                                                     (hash-set!
                                                      ht_0
                                                      app_0
                                                      (loop_0
                                                       datum-intern?14_0
                                                       i_0
                                                       shared-count_0
                                                       shared_0)))
                                                   (for-loop_0 (+ pos_0 1)))
                                                 (values)))))))
                                        (for-loop_0 0)))
                                     (void)
                                     ht_0))))
                             (if (unsafe-fx< index_0 38)
                               (let ((ht_0
                                      (let ((tmp_0 (read-byte/no-eof i_0)))
                                        (if (eq? tmp_0 0)
                                          hash2610
                                          (if (eq? tmp_0 2)
                                            hash2589
                                            hash2725)))))
                                 (let ((len_0 (read-fasl-integer i_0)))
                                   (begin
                                     (letrec*
                                      ((for-loop_0
                                        (|#%name|
                                         for-loop
                                         (lambda (ht_1 pos_0)
                                           (begin
                                             (if (< pos_0 len_0)
                                               (let ((ht_2
                                                      (let ((ht_2
                                                             (let ((app_0
                                                                    (loop_0
                                                                     datum-intern?14_0
                                                                     i_0
                                                                     shared-count_0
                                                                     shared_0)))
                                                               (hash-set
                                                                ht_1
                                                                app_0
                                                                (loop_0
                                                                 datum-intern?14_0
                                                                 i_0
                                                                 shared-count_0
                                                                 shared_0)))))
                                                        (values ht_2))))
                                                 (for-loop_0 ht_2 (+ pos_0 1)))
                                               ht_1))))))
                                      (for-loop_0 ht_0 0)))))
                               (if (unsafe-fx< index_0 39)
                                 (let ((app_0
                                        (loop_0
                                         datum-intern?14_0
                                         i_0
                                         shared-count_0
                                         shared_0)))
                                   (let ((app_1
                                          (loop_0
                                           datum-intern?14_0
                                           i_0
                                           shared-count_0
                                           shared_0)))
                                     (let ((app_2
                                            (loop_0
                                             datum-intern?14_0
                                             i_0
                                             shared-count_0
                                             shared_0)))
                                       (let ((app_3
                                              (loop_0
                                               datum-intern?14_0
                                               i_0
                                               shared-count_0
                                               shared_0)))
                                         (unsafe-make-srcloc
                                          app_0
                                          app_1
                                          app_2
                                          app_3
                                          (loop_0
                                           datum-intern?14_0
                                           i_0
                                           shared-count_0
                                           shared_0))))))
                                 (if (unsafe-fx< index_0 40)
                                   (let ((e_0
                                          (loop_0
                                           datum-intern?14_0
                                           i_0
                                           shared-count_0
                                           shared_0)))
                                     (let ((s_0
                                            (loop_0
                                             datum-intern?14_0
                                             i_0
                                             shared-count_0
                                             shared_0)))
                                       (let ((c_0
                                              (datum->correlated
                                               e_0
                                               (let ((app_0
                                                      (srcloc-source s_0)))
                                                 (let ((app_1
                                                        (srcloc-line s_0)))
                                                   (let ((app_2
                                                          (srcloc-column s_0)))
                                                     (let ((app_3
                                                            (srcloc-position
                                                             s_0)))
                                                       (vector
                                                        app_0
                                                        app_1
                                                        app_2
                                                        app_3
                                                        (srcloc-span
                                                         s_0)))))))))
                                         (let ((lst_0
                                                (loop_0
                                                 datum-intern?14_0
                                                 i_0
                                                 shared-count_0
                                                 shared_0)))
                                           (begin
                                             (letrec*
                                              ((for-loop_0
                                                (|#%name|
                                                 for-loop
                                                 (lambda (c_1 lst_1)
                                                   (begin
                                                     (if (pair? lst_1)
                                                       (let ((p_0
                                                              (unsafe-car
                                                               lst_1)))
                                                         (let ((rest_0
                                                                (unsafe-cdr
                                                                 lst_1)))
                                                           (let ((c_2
                                                                  (let ((c_2
                                                                         (let ((k_0
                                                                                (car
                                                                                 p_0)))
                                                                           (let ((v_0
                                                                                  (cdr
                                                                                   p_0)))
                                                                             (let ((k_1
                                                                                    k_0))
                                                                               (|#%app|
                                                                                1/syntax-property
                                                                                c_1
                                                                                k_1
                                                                                v_0))))))
                                                                    (values
                                                                     c_2))))
                                                             (for-loop_0
                                                              c_2
                                                              rest_0))))
                                                       c_1))))))
                                              (for-loop_0 c_0 lst_0)))))))
                                   unsafe-undefined)))))))))))))
           (ploop_0
            (|#%name|
             ploop
             (lambda (datum-intern?14_0 i_0 shared-count_0 shared_0 len_0)
               (begin
                 (if (zero? len_0)
                   (loop_0 datum-intern?14_0 i_0 shared-count_0 shared_0)
                   (let ((app_0
                          (loop_0
                           datum-intern?14_0
                           i_0
                           shared-count_0
                           shared_0)))
                     (cons
                      app_0
                      (ploop_0
                       datum-intern?14_0
                       i_0
                       shared-count_0
                       shared_0
                       (sub1 len_0))))))))))
    (|#%name|
     fasl->s-exp
     (lambda (datum-intern?14_0 external-lifts15_0 orig-i18_0)
       (begin
         (let ((external-lifts_0
                (if (eq? external-lifts15_0 unsafe-undefined)
                  '#()
                  external-lifts15_0)))
           (let ((init-i_0
                  (if (bytes? orig-i18_0)
                    (mcons orig-i18_0 0)
                    (if (input-port? orig-i18_0)
                      orig-i18_0
                      (raise-argument-error
                       'fasl->s-exp
                       "(or/c bytes? input-port?)"
                       orig-i18_0)))))
             (begin
               (if (bytes=?
                    (read-bytes/exactly fasl-prefix-length init-i_0)
                    fasl-prefix)
                 (void)
                 (read-error "unrecognized prefix"))
               (let ((shared-count_0 (read-fasl-integer init-i_0)))
                 (let ((shared_0 (make-vector shared-count_0)))
                   (begin
                     (if (if (vector? external-lifts_0)
                           (<= (vector-length external-lifts_0) shared-count_0)
                           #f)
                       (void)
                       (error
                        'fasl->s-exp
                        "external-lift vector does not match expected size"))
                     (begin
                       (call-with-values
                        (lambda ()
                          (begin
                            (check-vector external-lifts_0)
                            (values
                             external-lifts_0
                             (unsafe-vector-length external-lifts_0))))
                        (case-lambda
                         ((vec_0 len_0)
                          (let ((start_0 0))
                            (let ((vec_1 vec_0) (len_1 len_0))
                              (begin
                                #f
                                (void)
                                (letrec*
                                 ((for-loop_0
                                   (|#%name|
                                    for-loop
                                    (lambda (pos_0 pos_1)
                                      (begin
                                        (if (if (unsafe-fx< pos_0 len_1) #t #f)
                                          (let ((v_0
                                                 (unsafe-vector-ref
                                                  vec_1
                                                  pos_0)))
                                            (begin
                                              (vector-set!
                                               shared_0
                                               pos_1
                                               (vector-ref
                                                external-lifts_0
                                                pos_1))
                                              (for-loop_0
                                               (unsafe-fx+ 1 pos_0)
                                               (+ pos_1 1))))
                                          (values)))))))
                                 (for-loop_0 0 start_0))))))
                         (args (raise-binding-result-arity-error 2 args))))
                       (let ((len_0 (read-fasl-integer init-i_0)))
                         (let ((i_0
                                (if (mpair? init-i_0)
                                  init-i_0
                                  (let ((bstr_0
                                         (read-bytes/exactly len_0 init-i_0)))
                                    (mcons bstr_0 0)))))
                           (loop_0
                            datum-intern?14_0
                            i_0
                            shared-count_0
                            shared_0)))))))))))))))
(define write-fasl-integer
  (lambda (i_0 o_0)
    (if (<= -124 i_0 127)
      (if (negative? i_0)
        (let ((byte_0 (+ i_0 256))) (write-byte byte_0 o_0))
        (write-byte i_0 o_0))
      (if (<= -32768 i_0 32767)
        (begin
          (write-byte 128 o_0)
          (1/write-bytes (integer->integer-bytes i_0 2 #t #f) o_0))
        (if (<= -2147483648 i_0 2147483647)
          (begin
            (write-byte 129 o_0)
            (1/write-bytes (integer->integer-bytes i_0 4 #t #f) o_0))
          (if (<= -9223372036854775808 i_0 9223372036854775807)
            (begin
              (write-byte 130 o_0)
              (1/write-bytes (integer->integer-bytes i_0 8 #t #f) o_0))
            (begin
              (write-byte 131 o_0)
              (let ((s_0 (format "~x" i_0)))
                (begin
                  (write-fasl-integer (string-length s_0) o_0)
                  (write-string s_0 o_0))))))))))
(define write-fasl-string
  (lambda (v_0 o_0)
    (let ((bstr_0 (string->bytes/utf-8 v_0)))
      (begin
        (write-fasl-integer (unsafe-bytes-length bstr_0) o_0)
        (1/write-bytes bstr_0 o_0)))))
(define write-fasl-bytes
  (lambda (v_0 o_0)
    (begin
      (write-fasl-integer (unsafe-bytes-length v_0) o_0)
      (1/write-bytes v_0 o_0))))
(define read-error
  (lambda (s_0 . args_0)
    (apply
     raise-arguments-error
     'fasl-read
     (string-append "error parsing fasl stream;\n" " " s_0)
     args_0)))
(define read-byte/no-eof
  (lambda (i_0)
    (if (mpair? i_0)
      (let ((pos_0 (mcdr i_0)))
        (begin
          (if (< pos_0 (unsafe-bytes-length (mcar i_0)))
            (void)
            (read-error "truncated stream"))
          (set-mcdr! i_0 (add1 pos_0))
          (unsafe-bytes-ref (mcar i_0) pos_0)))
      (let ((b_0 (read-byte i_0)))
        (begin
          (if (eof-object? b_0) (read-error "truncated stream") (void))
          b_0)))))
(define read-bytes/exactly
  (lambda (n_0 i_0)
    (if (mpair? i_0)
      (let ((pos_0 (mcdr i_0)))
        (begin
          (if (let ((app_0 (+ pos_0 n_0)))
                (<= app_0 (unsafe-bytes-length (mcar i_0))))
            (void)
            (read-error "truncated stream"))
          (set-mcdr! i_0 (+ pos_0 n_0))
          (let ((app_0 (mcar i_0))) (subbytes app_0 pos_0 (+ pos_0 n_0)))))
      (let ((bstr_0 (read-bytes n_0 i_0)))
        (begin
          (if (if (bytes? bstr_0) (= n_0 (unsafe-bytes-length bstr_0)) #f)
            (void)
            (read-error "truncated stream"))
          bstr_0)))))
(define read-fasl-integer
  (lambda (i_0)
    (let ((b_0 (read-byte/no-eof i_0)))
      (if (<= b_0 127)
        b_0
        (if (>= b_0 132)
          (- b_0 256)
          (if (eqv? b_0 128)
            (integer-bytes->integer (read-bytes/exactly 2 i_0) #t #f)
            (if (eqv? b_0 129)
              (integer-bytes->integer (read-bytes/exactly 4 i_0) #t #f)
              (if (eqv? b_0 130)
                (integer-bytes->integer (read-bytes/exactly 8 i_0) #t #f)
                (if (eqv? b_0 131)
                  (let ((len_0 (read-fasl-integer i_0)))
                    (let ((str_0 (read-fasl-string i_0 len_0)))
                      (begin
                        (if (if (string? str_0)
                              (= len_0 (string-length str_0))
                              #f)
                          (void)
                          (read-error "truncated stream at number"))
                        (string->number str_0 16))))
                  (read-error "internal error on integer mode"))))))))))
(define read-fasl-string
  (let ((read-fasl-string_0
         (|#%name|
          read-fasl-string
          (lambda (i21_0 len20_0)
            (begin
              (let ((len_0
                     (if (eq? len20_0 unsafe-undefined)
                       (read-fasl-integer i21_0)
                       len20_0)))
                (let ((bstr_0 (read-bytes/exactly len_0 i21_0)))
                  (bytes->string/utf-8 bstr_0))))))))
    (case-lambda
     ((i_0) (read-fasl-string_0 i_0 unsafe-undefined))
     ((i_0 len20_0) (read-fasl-string_0 i_0 len20_0)))))
(define read-fasl-bytes
  (lambda (i_0)
    (let ((len_0 (read-fasl-integer i_0))) (read-bytes/exactly len_0 i_0))))
(define extract-paths-and-fasls-from-schemified-linklet
  (letrec ((path-binding?_0
            (|#%name|
             path-binding?
             (lambda (b_0)
               (begin
                 (let ((rhs_0 (cadr b_0)))
                   (let ((or-part_0 (path? rhs_0)))
                     (if or-part_0
                       or-part_0
                       (let ((or-part_1 (path-for-srcloc? rhs_0)))
                         (if or-part_1 or-part_1 (to-fasl? rhs_0)))))))))))
    (lambda (linklet-e_0 convert?_0)
      (let ((hd_0
             (let ((p_0 (unwrap linklet-e_0)))
               (if (pair? p_0) (unwrap (car p_0)) #f))))
        (if (if (eq? 'lambda hd_0) #t #f)
          (values '() linklet-e_0)
          (if (if (eq? 'let* hd_0)
                (let ((a_0 (cdr (unwrap linklet-e_0))))
                  (let ((p_0 (unwrap a_0)))
                    (if (pair? p_0)
                      (let ((a_1 (cdr p_0)))
                        (let ((p_1 (unwrap a_1)))
                          (if (pair? p_1)
                            (let ((a_2 (cdr p_1)))
                              (let ((app_0 (unwrap '())))
                                (eq? app_0 (unwrap a_2))))
                            #f)))
                      #f)))
                #f)
            (call-with-values
             (lambda ()
               (let ((d_0 (cdr (unwrap linklet-e_0))))
                 (let ((p_0 (unwrap d_0)))
                   (let ((bindings_0 (let ((a_0 (car p_0))) a_0)))
                     (let ((body_0
                            (let ((d_1 (cdr p_0)))
                              (let ((a_0 (car (unwrap d_1)))) a_0))))
                       (let ((bindings_1 bindings_0))
                         (values bindings_1 body_0)))))))
             (case-lambda
              ((bindings_0 body_0)
               (let ((any-path?_0
                      (begin
                        (letrec*
                         ((for-loop_0
                           (|#%name|
                            for-loop
                            (lambda (result_0 lst_0)
                              (begin
                                (if (pair? lst_0)
                                  (let ((b_0 (unsafe-car lst_0)))
                                    (let ((rest_0 (unsafe-cdr lst_0)))
                                      (let ((result_1
                                             (let ((result_1
                                                    (path-binding?_0 b_0)))
                                               (values result_1))))
                                        (if (if (not
                                                 (let ((x_0 (list b_0)))
                                                   result_1))
                                              #t
                                              #f)
                                          (for-loop_0 result_1 rest_0)
                                          result_1))))
                                  result_0))))))
                         (for-loop_0 #f bindings_0)))))
                 (if any-path?_0
                   (let ((paths_0
                          (reverse$1
                           (begin
                             (letrec*
                              ((for-loop_0
                                (|#%name|
                                 for-loop
                                 (lambda (fold-var_0 lst_0)
                                   (begin
                                     (if (pair? lst_0)
                                       (let ((b_0 (unsafe-car lst_0)))
                                         (let ((rest_0 (unsafe-cdr lst_0)))
                                           (let ((fold-var_1
                                                  (if (path-binding?_0 b_0)
                                                    (let ((fold-var_1
                                                           (cons
                                                            (cadr b_0)
                                                            fold-var_0)))
                                                      (values fold-var_1))
                                                    fold-var_0)))
                                             (for-loop_0 fold-var_1 rest_0))))
                                       fold-var_0))))))
                              (for-loop_0 null bindings_0))))))
                     (if convert?_0
                       (let ((path-ids_0
                              (reverse$1
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (fold-var_0 lst_0)
                                       (begin
                                         (if (pair? lst_0)
                                           (let ((b_0 (unsafe-car lst_0)))
                                             (let ((rest_0 (unsafe-cdr lst_0)))
                                               (let ((fold-var_1
                                                      (if (path-binding?_0 b_0)
                                                        (let ((fold-var_1
                                                               (cons
                                                                (car b_0)
                                                                fold-var_0)))
                                                          (values fold-var_1))
                                                        fold-var_0)))
                                                 (for-loop_0
                                                  fold-var_1
                                                  rest_0))))
                                           fold-var_0))))))
                                  (for-loop_0 null bindings_0))))))
                         (let ((other-bindings_0
                                (reverse$1
                                 (begin
                                   (letrec*
                                    ((for-loop_0
                                      (|#%name|
                                       for-loop
                                       (lambda (fold-var_0 lst_0)
                                         (begin
                                           (if (pair? lst_0)
                                             (let ((b_0 (unsafe-car lst_0)))
                                               (let ((rest_0
                                                      (unsafe-cdr lst_0)))
                                                 (let ((fold-var_1
                                                        (if (path-binding?_0
                                                             b_0)
                                                          fold-var_0
                                                          (let ((fold-var_1
                                                                 (cons
                                                                  b_0
                                                                  fold-var_0)))
                                                            (values
                                                             fold-var_1)))))
                                                   (for-loop_0
                                                    fold-var_1
                                                    rest_0))))
                                             fold-var_0))))))
                                    (for-loop_0 null bindings_0))))))
                           (values
                            paths_0
                            (list
                             'lambda
                             path-ids_0
                             (list 'let* other-bindings_0 body_0)))))
                       (values paths_0 linklet-e_0)))
                   (values '() linklet-e_0))))
              (args (raise-binding-result-arity-error 2 args))))
            (error 'match "failed ~e" linklet-e_0)))))))
(define make-path->compiled-path
  (letrec ((make-path->compiled-path_0
            (|#%name|
             make-path->compiled-path
             (lambda (path->relative-path-elements_0 orig-p3_0 for-srcloc?2_0)
               (begin
                 (if (to-fasl? orig-p3_0)
                   (let ((v_0 (1/force-unfasl orig-p3_0)))
                     (if (symbol? v_0)
                       (box v_0)
                       (let ((lifts_0 '()))
                         (let ((cannot-fasl5_0 cannot-fasl))
                           (let ((bstr_0
                                  (let ((temp6_0
                                         (lambda (v_1)
                                           (if (symbol? v_1)
                                             (if (not (symbol-interned? v_1))
                                               (if (not
                                                    (symbol-unreadable? v_1))
                                                 (begin
                                                   (set! lifts_0
                                                     (cons v_1 lifts_0))
                                                   #t)
                                                 #f)
                                               #f)
                                             #f))))
                                    (s-exp->fasl.1
                                     temp6_0
                                     cannot-fasl5_0
                                     #f
                                     v_0
                                     #f))))
                             (if (null? lifts_0)
                               (box bstr_0)
                               (box
                                (cons
                                 bstr_0
                                 (list->vector (reverse$1 lifts_0))))))))))
                   (if (symbol? orig-p3_0)
                     orig-p3_0
                     (let ((p_0
                            (if (path-for-srcloc? orig-p3_0)
                              (path-for-srcloc-path orig-p3_0)
                              orig-p3_0)))
                       (if (path? p_0)
                         (let ((or-part_0
                                (|#%app| path->relative-path-elements_0 p_0)))
                           (if or-part_0
                             or-part_0
                             (if (if for-srcloc?2_0
                                   for-srcloc?2_0
                                   (path-for-srcloc? orig-p3_0))
                               (truncate-path p_0)
                               (path->bytes p_0))))
                         (if (let ((or-part_0 (string? p_0)))
                               (if or-part_0
                                 or-part_0
                                 (let ((or-part_1 (bytes? p_0)))
                                   (if or-part_1
                                     or-part_1
                                     (let ((or-part_2 (symbol? p_0)))
                                       (if or-part_2 or-part_2 (not p_0)))))))
                           p_0
                           (error
                            'write
                            "cannot marshal value that is embedded in compiled code: ~V"
                            p_0)))))))))))
    (lambda (who_0)
      (let ((path->relative-path-elements_0
             (make-path->relative-path-elements.1 who_0 unsafe-undefined)))
        (|#%name|
         make-path->compiled-path
         (case-lambda
          ((orig-p_0)
           (begin
             (make-path->compiled-path_0
              path->relative-path-elements_0
              orig-p_0
              #f)))
          ((orig-p_0 for-srcloc?2_0)
           (make-path->compiled-path_0
            path->relative-path-elements_0
            orig-p_0
            for-srcloc?2_0))))))))
(define compiled-path->path
  (lambda (e_0)
    (if (box? e_0)
      (let ((c_0 (unbox e_0)))
        (let ((app_0 (box (if (pair? c_0) (car c_0) c_0))))
          (let ((app_1 (if (pair? c_0) (cdr c_0) '#())))
            (to-fasl1.1
             app_0
             app_1
             (if (not (symbol? c_0))
               (let ((or-part_0 (current-load-relative-directory)))
                 (if or-part_0 or-part_0 (current-directory)))
               #f)))))
      (if (symbol? e_0)
        e_0
        (if (bytes? e_0)
          (bytes->path e_0)
          (if (string? e_0) e_0 (relative-path-elements->path e_0)))))))
(define 1/force-unfasl
  (|#%name|
   force-unfasl
   (lambda (tf_0)
     (begin
       (if (not (to-fasl? tf_0))
         tf_0
         (let ((vb_0 (to-fasl-vb tf_0)))
           (let ((v_0 (unbox vb_0)))
             (if (bytes? v_0)
               (let ((v2_0
                      (with-continuation-mark*
                       push-authentic
                       parameterization-key
                       (let ((app_0
                              (continuation-mark-set-first
                               #f
                               parameterization-key)))
                         (extend-parameterization
                          app_0
                          current-load-relative-directory
                          (to-fasl-wrt tf_0)))
                       (let ((temp9_0 (to-fasl-lifts tf_0)))
                         (fasl->s-exp.1 #t temp9_0 v_0)))))
                 (letrec*
                  ((loop_0
                    (|#%name|
                     loop
                     (lambda ()
                       (begin
                         (if (unsafe-box*-cas! vb_0 v_0 v2_0)
                           (begin (set-to-fasl-wrt! tf_0 #f) v2_0)
                           (let ((v_1 (unbox vb_0)))
                             (if (bytes? v_1) (loop_0) v_1))))))))
                  (loop_0)))
               v_0))))))))
(define cannot-fasl
  (lambda (v_0)
    (error
     'write
     "cannot marshal value that is embedded in compiled code\n  value: ~v"
     v_0)))
(define struct:node (make-record-type-descriptor* 'node #f #f #f #f 5 31))
(define effect6234
  (struct-type-install-properties!
   struct:node
   'node
   5
   0
   #f
   (list (cons prop:authentic #t))
   #f
   #f
   '(0 1 2 3 4)
   #f
   'node))
(define node1.1
  (|#%name|
   node
   (record-constructor
    (make-record-constructor-descriptor struct:node #f #f))))
(define node? (|#%name| node? (record-predicate struct:node)))
(define node-key (|#%name| node-key (record-accessor struct:node 0)))
(define node-val (|#%name| node-val (record-accessor struct:node 1)))
(define node-height (|#%name| node-height (record-accessor struct:node 2)))
(define node-left (|#%name| node-left (record-accessor struct:node 3)))
(define node-right (|#%name| node-right (record-accessor struct:node 4)))
(define effect6235
  (begin
    (register-struct-constructor! node1.1)
    (register-struct-predicate! node?)
    (register-struct-field-accessor! node-key struct:node 0)
    (register-struct-field-accessor! node-val struct:node 1)
    (register-struct-field-accessor! node-height struct:node 2)
    (register-struct-field-accessor! node-left struct:node 3)
    (register-struct-field-accessor! node-right struct:node 4)
    (void)))
(define tree-height (lambda (t_0) (if (not t_0) 0 (node-height t_0))))
(define combine
  (lambda (key_0 val_0 left_0 right_0)
    (node1.1
     key_0
     val_0
     (fx+
      1
      (let ((app_0 (tree-height left_0))) (fxmax app_0 (tree-height right_0))))
     left_0
     right_0)))
(define reverse-combine
  (lambda (key_0 val_0 right_0 left_0) (combine key_0 val_0 left_0 right_0)))
(define insert
  (lambda (t_0 key_0 val_0)
    (if (not t_0)
      (combine key_0 val_0 #f #f)
      (if (fx< key_0 (node-key t_0))
        (let ((new-to_0 (insert (node-left t_0) key_0 val_0)))
          (let ((new-other_0 (node-right t_0)))
            (let ((new-t_0
                   (let ((app_0 (node-key t_0)))
                     (combine app_0 (node-val t_0) new-to_0 new-other_0))))
              (let ((to-height_0 (tree-height new-to_0)))
                (let ((other-height_0 (tree-height new-other_0)))
                  (if (fx= (fx- to-height_0 other-height_0) 2)
                    (rotate-right new-t_0)
                    new-t_0))))))
        (if (fx< (node-key t_0) key_0)
          (let ((new-to_0 (insert (node-right t_0) key_0 val_0)))
            (let ((new-other_0 (node-left t_0)))
              (let ((new-t_0
                     (let ((key_1 (node-key t_0)))
                       (let ((val_1 (node-val t_0)))
                         (let ((key_2 key_1))
                           (combine key_2 val_1 new-other_0 new-to_0))))))
                (let ((to-height_0 (tree-height new-to_0)))
                  (let ((other-height_0 (tree-height new-other_0)))
                    (if (fx= (fx- to-height_0 other-height_0) 2)
                      (rotate-left new-t_0)
                      new-t_0))))))
          (let ((app_0 (node-height t_0)))
            (let ((app_1 (node-left t_0)))
              (node1.1 key_0 val_0 app_0 app_1 (node-right t_0)))))))))
(define delete
  (lambda (t_0 key_0)
    (if (not t_0)
      #f
      (if (fx< key_0 (node-key t_0))
        (let ((new-to_0 (delete (node-left t_0) key_0)))
          (let ((new-other_0 (node-right t_0)))
            (let ((new-t_0
                   (let ((app_0 (node-key t_0)))
                     (combine app_0 (node-val t_0) new-to_0 new-other_0))))
              (let ((to-height_0 (tree-height new-to_0)))
                (let ((other-height_0 (tree-height new-other_0)))
                  (if (fx= (fx- to-height_0 other-height_0) -2)
                    (rotate-left new-t_0)
                    new-t_0))))))
        (if (fx< (node-key t_0) key_0)
          (let ((new-to_0 (delete (node-right t_0) key_0)))
            (let ((new-other_0 (node-left t_0)))
              (let ((new-t_0
                     (let ((key_1 (node-key t_0)))
                       (let ((val_0 (node-val t_0)))
                         (let ((key_2 key_1))
                           (combine key_2 val_0 new-other_0 new-to_0))))))
                (let ((to-height_0 (tree-height new-to_0)))
                  (let ((other-height_0 (tree-height new-other_0)))
                    (if (fx= (fx- to-height_0 other-height_0) -2)
                      (rotate-right new-t_0)
                      new-t_0))))))
          (let ((l_0 (node-left t_0)))
            (let ((r_0 (node-right t_0)))
              (if (not l_0)
                r_0
                (if (not r_0)
                  l_0
                  (let ((from_0 (node-left t_0)))
                    (let ((new-t_0
                           (letrec*
                            ((loop_0
                              (|#%name|
                               loop
                               (lambda (end_0)
                                 (begin
                                   (let ((c1_0 (node-right end_0)))
                                     (if c1_0
                                       (loop_0 c1_0)
                                       (let ((key_1 (node-key end_0)))
                                         (let ((new-from_0
                                                (delete from_0 key_1)))
                                           (let ((app_0 (node-val end_0)))
                                             (combine
                                              key_1
                                              app_0
                                              new-from_0
                                              (node-right t_0))))))))))))
                            (loop_0 from_0))))
                      (let ((from-height_0 (tree-height (node-left new-t_0))))
                        (let ((other-height_0
                               (tree-height (node-right new-t_0))))
                          (if (fx= (fx- from-height_0 other-height_0) -2)
                            (rotate-left new-t_0)
                            new-t_0))))))))))))))
(define rotate-right
  (lambda (t_0)
    (let ((to_0 (node-left t_0)))
      (let ((to-balance_0
             (let ((app_0 (tree-height (node-left to_0))))
               (fx- app_0 (tree-height (node-right to_0))))))
        (if (fx< to-balance_0 0)
          (double-rotate.1 t_0)
          (single-rotate.1 t_0))))))
(define double-rotate.1
  (|#%name|
   double-rotate
   (lambda (t_0)
     (begin
       (let ((orange_0 (node-left t_0)))
         (let ((yellow_0 (node-right orange_0)))
           (let ((A_0 (node-left orange_0)))
             (let ((B_0 (node-left yellow_0)))
               (let ((C_0 (node-right yellow_0)))
                 (let ((D_0 (node-right t_0)))
                   (single-rotate.1
                    (let ((app_0 (node-key t_0)))
                      (let ((app_1 (node-val t_0)))
                        (combine
                         app_0
                         app_1
                         (let ((app_2 (node-key yellow_0)))
                           (let ((app_3 (node-val yellow_0)))
                             (combine
                              app_2
                              app_3
                              (let ((app_4 (node-key orange_0)))
                                (combine app_4 (node-val orange_0) A_0 B_0))
                              C_0)))
                         D_0))))))))))))))
(define single-rotate.1
  (|#%name|
   single-rotate
   (lambda (t_0)
     (begin
       (let ((yellow_0 (node-left t_0)))
         (let ((app_0 (node-key yellow_0)))
           (let ((app_1 (node-val yellow_0)))
             (let ((app_2 (node-left yellow_0)))
               (combine
                app_0
                app_1
                app_2
                (let ((app_3 (node-key t_0)))
                  (let ((app_4 (node-val t_0)))
                    (let ((app_5 (node-right yellow_0)))
                      (combine app_3 app_4 app_5 (node-right t_0))))))))))))))
(define rotate-left
  (lambda (t_0)
    (let ((to_0 (node-right t_0)))
      (let ((to-balance_0
             (let ((app_0 (tree-height (node-right to_0))))
               (fx- app_0 (tree-height (node-left to_0))))))
        (if (fx< to-balance_0 0)
          (double-rotate.2 t_0)
          (single-rotate.2 t_0))))))
(define double-rotate.2
  (|#%name|
   double-rotate
   (lambda (t_0)
     (begin
       (let ((orange_0 (node-right t_0)))
         (let ((yellow_0 (node-left orange_0)))
           (let ((A_0 (node-right orange_0)))
             (let ((B_0 (node-right yellow_0)))
               (let ((C_0 (node-left yellow_0)))
                 (let ((D_0 (node-left t_0)))
                   (single-rotate.2
                    (let ((key_0 (node-key t_0)))
                      (let ((val_0 (node-val t_0)))
                        (let ((right_0
                               (let ((key_1 (node-key yellow_0)))
                                 (let ((val_1 (node-val yellow_0)))
                                   (let ((right_0
                                          (let ((key_2 (node-key orange_0)))
                                            (let ((val_2 (node-val orange_0)))
                                              (let ((key_3 key_2))
                                                (combine
                                                 key_3
                                                 val_2
                                                 B_0
                                                 A_0))))))
                                     (let ((val_2 val_1) (key_2 key_1))
                                       (combine key_2 val_2 C_0 right_0)))))))
                          (let ((val_1 val_0) (key_1 key_0))
                            (combine key_1 val_1 D_0 right_0))))))))))))))))
(define single-rotate.2
  (|#%name|
   single-rotate
   (lambda (t_0)
     (begin
       (let ((yellow_0 (node-right t_0)))
         (let ((key_0 (node-key yellow_0)))
           (let ((val_0 (node-val yellow_0)))
             (let ((right_0 (node-right yellow_0)))
               (let ((left_0
                      (let ((key_1 (node-key t_0)))
                        (let ((val_1 (node-val t_0)))
                          (let ((right_1 (node-left yellow_0)))
                            (let ((left_0 (node-left t_0)))
                              (let ((right_2 right_1)
                                    (val_2 val_1)
                                    (key_2 key_1))
                                (combine key_2 val_2 left_0 right_2))))))))
                 (let ((right_1 right_0) (val_1 val_0) (key_1 key_0))
                   (combine key_1 val_1 left_0 right_1)))))))))))
(define empty-intmap #f)
(define intmap-count
  (lambda (im_0)
    (if (not im_0)
      0
      (let ((app_0 (intmap-count (node-left im_0))))
        (fx+ 1 app_0 (intmap-count (node-right im_0)))))))
(define intmap-ref
  (lambda (im_0 key_0)
    (if (not im_0)
      (error 'intmap-ref "not found: ~e" key_0)
      (if (fx< key_0 (node-key im_0))
        (intmap-ref (node-left im_0) key_0)
        (if (fx< (node-key im_0) key_0)
          (intmap-ref (node-right im_0) key_0)
          (node-val im_0))))))
(define intmap-set (lambda (im_0 key_0 val_0) (insert im_0 key_0 val_0)))
(define intmap-remove (lambda (im_0 key_0) (delete im_0 key_0)))
(define empty-stack #f)
(define stack-count (lambda (stack_0) (intmap-count stack_0)))
(define stack-ref
  (let ((stack-ref_0
         (|#%name|
          stack-ref
          (lambda (stack2_0 i3_0 tail?1_0)
            (begin
              (if (box? i3_0)
                (let ((i_0 (unsafe-unbox* i3_0)))
                  (if tail?1_0
                    (intmap-ref stack2_0 i_0)
                    (let ((app_0 (delete stack2_0 i_0)))
                      (values app_0 (intmap-ref stack2_0 i_0)))))
                (if tail?1_0
                  (intmap-ref stack2_0 i3_0)
                  (values stack2_0 (intmap-ref stack2_0 i3_0)))))))))
    (case-lambda
     ((stack_0 i_0) (stack-ref_0 stack_0 i_0 #f))
     ((stack_0 i_0 tail?1_0) (stack-ref_0 stack_0 i_0 tail?1_0)))))
(define stack-set
  (lambda (stack_0 i_0 v_0) (let ((s_0 (insert stack_0 i_0 v_0))) s_0)))
(define stack-remove (lambda (stack_0 i_0) (delete stack_0 i_0)))
(define push-stack
  (lambda (stack_0 pos_0 vals_0 mask_0)
    (let ((rest?_0 (negative? mask_0)))
      (let ((count_0
             (if rest?_0
               (integer-length mask_0)
               (sub1 (integer-length mask_0)))))
        (letrec*
         ((loop_0
           (|#%name|
            loop
            (lambda (pos_1 vals_1 count_1 stack_1)
              (begin
                (if (zero? count_1)
                  (if rest?_0 (stack-set stack_1 pos_1 vals_1) stack_1)
                  (let ((app_0 (add1 pos_1)))
                    (let ((app_1 (cdr vals_1)))
                      (let ((app_2 (sub1 count_1)))
                        (loop_0
                         app_0
                         app_1
                         app_2
                         (stack-set stack_1 pos_1 (car vals_1))))))))))))
         (loop_0 pos_0 vals_0 count_0 stack_0))))))
(define struct:stack-info
  (make-record-type-descriptor* 'stack-info #f #f #f #f 5 31))
(define effect6343
  (struct-type-install-properties!
   struct:stack-info
   'stack-info
   5
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'stack-info))
(define stack-info4.1
  (|#%name|
   stack-info
   (record-constructor
    (make-record-constructor-descriptor struct:stack-info #f #f))))
(define stack-info?6342
  (|#%name| stack-info? (record-predicate struct:stack-info)))
(define stack-info?
  (|#%name|
   stack-info?
   (lambda (v)
     (if (stack-info?6342 v)
       #t
       ($value
        (if (impersonator? v) (stack-info?6342 (impersonator-val v)) #f))))))
(define stack-info-capture-depth6344
  (|#%name| stack-info-capture-depth (record-accessor struct:stack-info 0)))
(define stack-info-capture-depth
  (|#%name|
   stack-info-capture-depth
   (lambda (s)
     (if (stack-info?6342 s)
       (stack-info-capture-depth6344 s)
       ($value
        (impersonate-ref
         stack-info-capture-depth6344
         struct:stack-info
         0
         s
         'stack-info
         'capture-depth))))))
(define stack-info-closure-map6345
  (|#%name| stack-info-closure-map (record-accessor struct:stack-info 1)))
(define stack-info-closure-map
  (|#%name|
   stack-info-closure-map
   (lambda (s)
     (if (stack-info?6342 s)
       (stack-info-closure-map6345 s)
       ($value
        (impersonate-ref
         stack-info-closure-map6345
         struct:stack-info
         1
         s
         'stack-info
         'closure-map))))))
(define stack-info-use-map6346
  (|#%name| stack-info-use-map (record-accessor struct:stack-info 2)))
(define stack-info-use-map
  (|#%name|
   stack-info-use-map
   (lambda (s)
     (if (stack-info?6342 s)
       (stack-info-use-map6346 s)
       ($value
        (impersonate-ref
         stack-info-use-map6346
         struct:stack-info
         2
         s
         'stack-info
         'use-map))))))
(define stack-info-local-use-map6347
  (|#%name| stack-info-local-use-map (record-accessor struct:stack-info 3)))
(define stack-info-local-use-map
  (|#%name|
   stack-info-local-use-map
   (lambda (s)
     (if (stack-info?6342 s)
       (stack-info-local-use-map6347 s)
       ($value
        (impersonate-ref
         stack-info-local-use-map6347
         struct:stack-info
         3
         s
         'stack-info
         'local-use-map))))))
(define stack-info-non-tail-call-later?6348
  (|#%name|
   stack-info-non-tail-call-later?
   (record-accessor struct:stack-info 4)))
(define stack-info-non-tail-call-later?
  (|#%name|
   stack-info-non-tail-call-later?
   (lambda (s)
     (if (stack-info?6342 s)
       (stack-info-non-tail-call-later?6348 s)
       ($value
        (impersonate-ref
         stack-info-non-tail-call-later?6348
         struct:stack-info
         4
         s
         'stack-info
         'non-tail-call-later?))))))
(define set-stack-info-use-map!6349
  (|#%name| set-stack-info-use-map! (record-mutator struct:stack-info 2)))
(define set-stack-info-use-map!
  (|#%name|
   set-stack-info-use-map!
   (lambda (s v)
     (if (stack-info?6342 s)
       (set-stack-info-use-map!6349 s v)
       ($value
        (impersonate-set!
         set-stack-info-use-map!6349
         struct:stack-info
         2
         2
         s
         v
         'stack-info
         'use-map))))))
(define set-stack-info-local-use-map!6350
  (|#%name|
   set-stack-info-local-use-map!
   (record-mutator struct:stack-info 3)))
(define set-stack-info-local-use-map!
  (|#%name|
   set-stack-info-local-use-map!
   (lambda (s v)
     (if (stack-info?6342 s)
       (set-stack-info-local-use-map!6350 s v)
       ($value
        (impersonate-set!
         set-stack-info-local-use-map!6350
         struct:stack-info
         3
         3
         s
         v
         'stack-info
         'local-use-map))))))
(define set-stack-info-non-tail-call-later?!6351
  (|#%name|
   set-stack-info-non-tail-call-later?!
   (record-mutator struct:stack-info 4)))
(define set-stack-info-non-tail-call-later?!
  (|#%name|
   set-stack-info-non-tail-call-later?!
   (lambda (s v)
     (if (stack-info?6342 s)
       (set-stack-info-non-tail-call-later?!6351 s v)
       ($value
        (impersonate-set!
         set-stack-info-non-tail-call-later?!6351
         struct:stack-info
         4
         4
         s
         v
         'stack-info
         'non-tail-call-later?))))))
(define effect6352
  (begin
    (register-struct-constructor! stack-info4.1)
    (register-struct-predicate! stack-info?)
    (register-struct-field-accessor!
     stack-info-capture-depth
     struct:stack-info
     0)
    (register-struct-field-accessor!
     stack-info-closure-map
     struct:stack-info
     1)
    (register-struct-field-accessor! stack-info-use-map struct:stack-info 2)
    (register-struct-field-accessor!
     stack-info-local-use-map
     struct:stack-info
     3)
    (register-struct-field-accessor!
     stack-info-non-tail-call-later?
     struct:stack-info
     4)
    (register-struct-field-mutator!
     set-stack-info-use-map!
     struct:stack-info
     2)
    (register-struct-field-mutator!
     set-stack-info-local-use-map!
     struct:stack-info
     3)
    (register-struct-field-mutator!
     set-stack-info-non-tail-call-later?!
     struct:stack-info
     4)
    (void)))
(define make-stack-info.1
  (|#%name|
   make-stack-info
   (lambda (capture-depth5_0 closure-map6_0 track-use?7_0)
     (begin
       (stack-info4.1
        capture-depth5_0
        closure-map6_0
        (if track-use?7_0 hash2610 #f)
        #f
        #f)))))
(define stack->pos.1
  (|#%name|
   stack->pos
   (lambda (nonuse?12_0 i14_0 stk-i15_0)
     (begin
       (let ((capture-depth_0 (stack-info-capture-depth stk-i15_0)))
         (let ((pos_0
                (if (not capture-depth_0)
                  i14_0
                  (if (>= i14_0 capture-depth_0)
                    (- i14_0 capture-depth_0)
                    (let ((c1_0
                           (hash-ref
                            (stack-info-closure-map stk-i15_0)
                            i14_0
                            #f)))
                      (if c1_0
                        c1_0
                        (let ((cmap_0 (stack-info-closure-map stk-i15_0)))
                          (let ((pos_0 (- -1 (hash-count cmap_0))))
                            (begin
                              (hash-set! cmap_0 i14_0 pos_0)
                              pos_0)))))))))
           (if nonuse?12_0
             pos_0
             (let ((use-map_0 (stack-info-use-map stk-i15_0)))
               (if (let ((or-part_0 (not use-map_0)))
                     (if or-part_0 or-part_0 (hash-ref use-map_0 pos_0 #f)))
                 pos_0
                 (begin
                   (if use-map_0
                     (set-stack-info-use-map!
                      stk-i15_0
                      (hash-set use-map_0 pos_0 #t))
                     (void))
                   (let ((local-use-map_0
                          (stack-info-local-use-map stk-i15_0)))
                     (begin
                       (if local-use-map_0
                         (set-stack-info-local-use-map!
                          stk-i15_0
                          (hash-set local-use-map_0 pos_0 #t))
                         (void))
                       (if (stack-info-non-tail-call-later? stk-i15_0)
                         (box pos_0)
                         pos_0)))))))))))))
(define stack-info-branch
  (lambda (stk-i_0)
    (let ((app_0 (stack-info-capture-depth stk-i_0)))
      (let ((app_1 (stack-info-closure-map stk-i_0)))
        (let ((app_2 (stack-info-use-map stk-i_0)))
          (stack-info4.1
           app_0
           app_1
           app_2
           hash2610
           (stack-info-non-tail-call-later? stk-i_0)))))))
(define stack-info-branch-need-clears?
  (lambda (stk-i_0) (stack-info-non-tail-call-later? stk-i_0)))
(define stack-info-merge!
  (lambda (stk-i_0 branch-stk-is_0)
    (let ((all-clear_0 (make-hasheq)))
      (begin
        (begin
          (letrec*
           ((for-loop_0
             (|#%name|
              for-loop
              (lambda (lst_0)
                (begin
                  (if (pair? lst_0)
                    (let ((branch-stk-i_0 (unsafe-car lst_0)))
                      (let ((rest_0 (unsafe-cdr lst_0)))
                        (begin
                          (begin
                            (let ((ht_0
                                   (stack-info-local-use-map branch-stk-i_0)))
                              (begin
                                (letrec*
                                 ((for-loop_1
                                   (|#%name|
                                    for-loop
                                    (lambda (i_0)
                                      (begin
                                        (if i_0
                                          (let ((pos_0
                                                 (hash-iterate-key ht_0 i_0)))
                                            (begin
                                              (begin
                                                (hash-set!
                                                 all-clear_0
                                                 pos_0
                                                 #t)
                                                (let ((use-map_0
                                                       (stack-info-use-map
                                                        stk-i_0)))
                                                  (begin
                                                    (if use-map_0
                                                      (set-stack-info-use-map!
                                                       stk-i_0
                                                       (hash-set
                                                        use-map_0
                                                        pos_0
                                                        #t))
                                                      (void))
                                                    (let ((local-use-map_0
                                                           (stack-info-local-use-map
                                                            stk-i_0)))
                                                      (begin
                                                        (if local-use-map_0
                                                          (set-stack-info-local-use-map!
                                                           stk-i_0
                                                           (hash-set
                                                            local-use-map_0
                                                            pos_0
                                                            #t))
                                                          (void))
                                                        (set-stack-info-non-tail-call-later?!
                                                         stk-i_0
                                                         (let ((or-part_0
                                                                (stack-info-non-tail-call-later?
                                                                 stk-i_0)))
                                                           (if or-part_0
                                                             or-part_0
                                                             (stack-info-non-tail-call-later?
                                                              branch-stk-i_0)))))))))
                                              (for-loop_1
                                               (hash-iterate-next ht_0 i_0))))
                                          (values)))))))
                                 (for-loop_1 (hash-iterate-first ht_0)))))
                            (void))
                          (for-loop_0 rest_0))))
                    (values)))))))
           (for-loop_0 branch-stk-is_0)))
        (void)
        all-clear_0))))
(define stack-info-forget!
  (lambda (stk-i_0 stack-depth_0 start-pos_0 len_0)
    (if (stack-info-use-map stk-i_0)
      (begin
        (begin
          (letrec*
           ((for-loop_0
             (|#%name|
              for-loop
              (lambda (pos_0)
                (begin
                  (if (< pos_0 len_0)
                    (begin
                      (let ((pos_1 (+ start-pos_0 pos_0)))
                        (let ((use-map_0 (stack-info-use-map stk-i_0)))
                          (begin
                            (set-stack-info-use-map!
                             stk-i_0
                             (hash-remove use-map_0 pos_1))
                            (let ((local-use-map_0
                                   (stack-info-local-use-map stk-i_0)))
                              (if local-use-map_0
                                (set-stack-info-local-use-map!
                                 stk-i_0
                                 (hash-remove local-use-map_0 pos_1))
                                (void))))))
                      (for-loop_0 (+ pos_0 1)))
                    (values)))))))
           (for-loop_0 0)))
        (void))
      (void))))
(define stack-info-non-tail!
  (lambda (stk-i_0 stack-depth_0)
    (set-stack-info-non-tail-call-later?! stk-i_0 #t)))
(define struct:indirect
  (make-record-type-descriptor* 'indirect #f #f #f #f 2 3))
(define effect6371
  (struct-type-install-properties!
   struct:indirect
   'indirect
   2
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'indirect))
(define indirect1.1
  (|#%name|
   indirect
   (record-constructor
    (make-record-constructor-descriptor struct:indirect #f #f))))
(define indirect?6370 (|#%name| indirect? (record-predicate struct:indirect)))
(define indirect?
  (|#%name|
   indirect?
   (lambda (v)
     (if (indirect?6370 v)
       #t
       ($value
        (if (impersonator? v) (indirect?6370 (impersonator-val v)) #f))))))
(define indirect-pos6372
  (|#%name| indirect-pos (record-accessor struct:indirect 0)))
(define indirect-pos
  (|#%name|
   indirect-pos
   (lambda (s)
     (if (indirect?6370 s)
       (indirect-pos6372 s)
       ($value
        (impersonate-ref
         indirect-pos6372
         struct:indirect
         0
         s
         'indirect
         'pos))))))
(define indirect-element6373
  (|#%name| indirect-element (record-accessor struct:indirect 1)))
(define indirect-element
  (|#%name|
   indirect-element
   (lambda (s)
     (if (indirect?6370 s)
       (indirect-element6373 s)
       ($value
        (impersonate-ref
         indirect-element6373
         struct:indirect
         1
         s
         'indirect
         'element))))))
(define effect6374
  (begin
    (register-struct-constructor! indirect1.1)
    (register-struct-predicate! indirect?)
    (register-struct-field-accessor! indirect-pos struct:indirect 0)
    (register-struct-field-accessor! indirect-element struct:indirect 1)
    (void)))
(define struct:boxed (make-record-type-descriptor* 'boxed #f #f #f #f 1 1))
(define effect6376
  (struct-type-install-properties!
   struct:boxed
   'boxed
   1
   0
   #f
   null
   (current-inspector)
   #f
   '(0)
   #f
   'boxed))
(define boxed2.1
  (|#%name|
   boxed
   (record-constructor
    (make-record-constructor-descriptor struct:boxed #f #f))))
(define boxed?6375 (|#%name| boxed? (record-predicate struct:boxed)))
(define boxed?
  (|#%name|
   boxed?
   (lambda (v)
     (if (boxed?6375 v)
       #t
       ($value (if (impersonator? v) (boxed?6375 (impersonator-val v)) #f))))))
(define boxed-pos6377 (|#%name| boxed-pos (record-accessor struct:boxed 0)))
(define boxed-pos
  (|#%name|
   boxed-pos
   (lambda (s)
     (if (boxed?6375 s)
       (boxed-pos6377 s)
       ($value
        (impersonate-ref boxed-pos6377 struct:boxed 0 s 'boxed 'pos))))))
(define effect6378
  (begin
    (register-struct-constructor! boxed2.1)
    (register-struct-predicate! boxed?)
    (register-struct-field-accessor! boxed-pos struct:boxed 0)
    (void)))
(define struct:boxed/check
  (make-record-type-descriptor* 'boxed/check struct:boxed #f #f #f 0 0))
(define effect6380
  (struct-type-install-properties!
   struct:boxed/check
   'boxed/check
   0
   0
   struct:boxed
   null
   (current-inspector)
   #f
   '()
   #f
   'boxed/check))
(define boxed/check3.1
  (|#%name|
   boxed/check
   (record-constructor
    (make-record-constructor-descriptor struct:boxed/check #f #f))))
(define boxed/check?6379
  (|#%name| boxed/check? (record-predicate struct:boxed/check)))
(define boxed/check?
  (|#%name|
   boxed/check?
   (lambda (v)
     (if (boxed/check?6379 v)
       #t
       ($value
        (if (impersonator? v) (boxed/check?6379 (impersonator-val v)) #f))))))
(define effect6381
  (begin
    (register-struct-constructor! boxed/check3.1)
    (register-struct-predicate! boxed/check?)
    (void)))
(define primitives hash2610)
(define strip-annotations (lambda (e_0) e_0))
(define 1/variable-ref
  (|#%name| variable-ref (lambda (var_0) (begin (unbox var_0)))))
(define 1/variable-ref/no-check
  (|#%name| variable-ref/no-check (lambda (var_0) (begin (unbox var_0)))))
(define 1/variable-set!
  (|#%name| variable-set! (lambda (var_0 v_0) (begin (set-box! var_0 v_0)))))
(define 1/variable-set!/define
  (|#%name|
   variable-set!/define
   (lambda (var_0 v_0) (begin (set-box! var_0 v_0)))))
(define make-interp-procedure* (lambda (proc_0 mask_0 name_0) proc_0))
(define interpreter-link!
  (lambda (prims_0
           strip_0
           var-ref_0
           var-ref/no-check_0
           var-set!_0
           var-set!/def_0
           make-proc_0)
    (begin
      (set! primitives prims_0)
      (set! strip-annotations strip_0)
      (set! 1/variable-ref var-ref_0)
      (set! 1/variable-ref/no-check var-ref/no-check_0)
      (set! 1/variable-set! var-set!_0)
      (set! 1/variable-set!/define var-set!/def_0)
      (set! make-interp-procedure* make-proc_0))))
(define interpretable-jitified-linklet
  (letrec ((add-boxes/remove-unused_0
            (|#%name|
             add-boxes/remove-unused
             (lambda (e_0 ids_0 mutated_0 env_0 stk-i_0)
               (begin
                 (if (null? ids_0)
                   e_0
                   (if (pair? ids_0)
                     (let ((app_0
                            (add-boxes/remove-unused_0
                             e_0
                             (car ids_0)
                             mutated_0
                             env_0
                             stk-i_0)))
                       (add-boxes/remove-unused_0
                        app_0
                        (cdr ids_0)
                        mutated_0
                        env_0
                        stk-i_0))
                     (let ((u_0 (unwrap ids_0)))
                       (let ((var_0 (hash-ref env_0 u_0 #f)))
                         (let ((pos_0
                                (let ((temp61_0
                                       (if (boxed? var_0)
                                         (boxed-pos var_0)
                                         var_0)))
                                  (stack->pos.1 #f temp61_0 stk-i_0))))
                           (if (box? pos_0)
                             (if (if (vector? e_0)
                                   (eq? 'clear (vector-ref e_0 0))
                                   #f)
                               (let ((app_0
                                      (let ((app_0 (unbox pos_0)))
                                        (cons app_0 (vector-ref e_0 1)))))
                                 (vector 'clear app_0 (vector-ref e_0 2)))
                               (vector 'clear (list (unbox pos_0)) e_0))
                             (if (not (hash-ref mutated_0 u_0 #f))
                               e_0
                               (vector 'enbox pos_0 e_0))))))))))))
           (add-clears_0
            (|#%name|
             add-clears
             (lambda (e_0 stk-i_0 all-clear_0)
               (begin
                 (if (stack-info-non-tail-call-later? stk-i_0)
                   (let ((local-use-map_0 (stack-info-local-use-map stk-i_0)))
                     (let ((clears_0
                            (reverse$1
                             (begin
                               (letrec*
                                ((for-loop_0
                                  (|#%name|
                                   for-loop
                                   (lambda (fold-var_0 i_0)
                                     (begin
                                       (if i_0
                                         (let ((pos_0
                                                (hash-iterate-key
                                                 all-clear_0
                                                 i_0)))
                                           (let ((fold-var_1
                                                  (if (hash-ref
                                                       local-use-map_0
                                                       pos_0
                                                       #f)
                                                    fold-var_0
                                                    (let ((fold-var_1
                                                           (cons
                                                            pos_0
                                                            fold-var_0)))
                                                      (values fold-var_1)))))
                                             (for-loop_0
                                              fold-var_1
                                              (hash-iterate-next
                                               all-clear_0
                                               i_0))))
                                         fold-var_0))))))
                                (for-loop_0
                                 null
                                 (hash-iterate-first all-clear_0)))))))
                       (if (null? clears_0)
                         e_0
                         (vector 'clear (sort.1 #f #f clears_0 <) e_0))))
                   e_0)))))
           (args->env_0
            (|#%name|
             args->env
             (lambda (ids_0 env_0 stack-depth_0 mutated_0)
               (begin
                 (letrec*
                  ((loop_4
                    (|#%name|
                     loop
                     (lambda (ids_1 env_1 count_0)
                       (begin
                         (if (null? (unwrap ids_1))
                           (values env_1 count_0 #f)
                           (if (pair? (unwrap ids_1))
                             (let ((app_0 (wrap-cdr ids_1)))
                               (let ((app_1
                                      (let ((app_1 (unwrap (wrap-car ids_1))))
                                        (env-set_0
                                         env_1
                                         app_1
                                         (+ stack-depth_0 count_0)
                                         mutated_0))))
                                 (loop_4 app_0 app_1 (add1 count_0))))
                             (let ((app_0
                                    (let ((app_0 (unwrap ids_1)))
                                      (env-set_0
                                       env_1
                                       app_0
                                       (+ stack-depth_0 count_0)
                                       mutated_0))))
                               (values app_0 (add1 count_0) #t)))))))))
                  (loop_4 ids_0 env_0 0))))))
           (begins->list_0
            (|#%name|
             begins->list
             (lambda (e_0)
               (begin
                 (if (vector? e_0)
                   (if (if (eq? 'beginl (unsafe-vector*-ref e_0 0)) #t #f)
                     (let ((es_0 (unsafe-vector*-ref e_0 1))) es_0)
                     (if (eq? 'begin (unsafe-vector*-ref e_0 0))
                       (let ((len_0 (sub1 (unsafe-vector*-length e_0))))
                         (if (< len_0 4) (loop_3 e_0 len_0 1) (list e_0)))
                       (list e_0)))
                   (list e_0))))))
           (compile-apply_0
            (|#%name|
             compile-apply
             (lambda (serializable?_0
                      es_0
                      env_0
                      stack-depth_0
                      stk-i_0
                      tail?_0
                      mutated_0)
               (begin
                 (begin
                   (if tail?_0
                     (void)
                     (set-stack-info-non-tail-call-later?! stk-i_0 #t))
                   (let ((new-es_0
                          (compile-list_0
                           serializable?_0
                           es_0
                           env_0
                           stack-depth_0
                           stk-i_0
                           #f
                           mutated_0)))
                     (list->vector (cons 'app new-es_0))))))))
           (compile-assignment_0
            (|#%name|
             compile-assignment
             (lambda (serializable?_0
                      id_0
                      rhs_0
                      env_0
                      stack-depth_0
                      stk-i_0
                      mutated_0)
               (begin
                 (let ((compiled-rhs_0
                        (compile-expr_0
                         serializable?_0
                         rhs_0
                         env_0
                         stack-depth_0
                         stk-i_0
                         #f
                         mutated_0)))
                   (let ((u_0 (unwrap id_0)))
                     (let ((var_0 (hash-ref env_0 u_0)))
                       (if (indirect? var_0)
                         (let ((s_0
                                (let ((temp47_0 (indirect-pos var_0)))
                                  (stack->pos.1 #f temp47_0 stk-i_0))))
                           (let ((e_0 (indirect-element var_0)))
                             (vector 'set!-indirect s_0 e_0 compiled-rhs_0)))
                         (if (boxed? var_0)
                           (let ((s_0
                                  (let ((temp49_0 (boxed-pos var_0)))
                                    (stack->pos.1 #f temp49_0 stk-i_0))))
                             (if (boxed/check? var_0)
                               (vector
                                'set!-boxed/checked
                                s_0
                                compiled-rhs_0
                                u_0)
                               (vector 'set!-boxed s_0 compiled-rhs_0 u_0)))
                           (error
                            'compile
                            "unexpected set! ~s -> ~v"
                            u_0
                            var_0))))))))))
           (compile-body_0
            (|#%name|
             compile-body
             (lambda (serializable?_0
                      body_0
                      env_0
                      stack-depth_0
                      stk-i_0
                      tail?_0
                      mutated_0)
               (begin
                 (if (let ((p_0 (unwrap body_0)))
                       (if (pair? p_0)
                         (let ((a_0 (cdr p_0)))
                           (let ((app_0 (unwrap '())))
                             (eq? app_0 (unwrap a_0))))
                         #f))
                   (let ((e_0 (let ((a_0 (car (unwrap body_0)))) a_0)))
                     (compile-expr_0
                      serializable?_0
                      e_0
                      env_0
                      stack-depth_0
                      stk-i_0
                      tail?_0
                      mutated_0))
                   (list->vector
                    (cons
                     'begin
                     (compile-list_0
                      serializable?_0
                      body_0
                      env_0
                      stack-depth_0
                      stk-i_0
                      tail?_0
                      mutated_0))))))))
           (compile-expr_0
            (|#%name|
             compile-expr
             (lambda (serializable?_0
                      e_0
                      env_0
                      stack-depth_0
                      stk-i_0
                      tail?_0
                      mutated_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap e_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'lambda hd_0)
                         (let ((a_0 (cdr (unwrap e_0))))
                           (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
                         #f)
                     (call-with-values
                      (lambda ()
                        (let ((d_0 (cdr (unwrap e_0))))
                          (let ((p_0 (unwrap d_0)))
                            (let ((ids_0 (let ((a_0 (car p_0))) a_0)))
                              (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                                (let ((ids_1 ids_0))
                                  (values ids_1 body_0)))))))
                      (case-lambda
                       ((ids_0 body_0)
                        (call-with-values
                         (lambda ()
                           (args->env_0 ids_0 env_0 stack-depth_0 mutated_0))
                         (case-lambda
                          ((body-env_0 count_0 rest?_0)
                           (let ((cmap_0 (make-hasheq)))
                             (let ((body-stack-depth_0
                                    (+ stack-depth_0 count_0)))
                               (let ((body-stk-i_0
                                      (make-stack-info.1
                                       stack-depth_0
                                       cmap_0
                                       #t)))
                                 (let ((new-body_0
                                        (compile-body_0
                                         serializable?_0
                                         body_0
                                         body-env_0
                                         body-stack-depth_0
                                         body-stk-i_0
                                         #t
                                         mutated_0)))
                                   (let ((rev-cmap_0
                                          (begin
                                            (letrec*
                                             ((for-loop_0
                                               (|#%name|
                                                for-loop
                                                (lambda (table_0 i_0)
                                                  (begin
                                                    (if i_0
                                                      (call-with-values
                                                       (lambda ()
                                                         (hash-iterate-key+value
                                                          cmap_0
                                                          i_0))
                                                       (case-lambda
                                                        ((i_1 pos_0)
                                                         (let ((table_1
                                                                (let ((table_1
                                                                       (call-with-values
                                                                        (lambda ()
                                                                          (values
                                                                           (-
                                                                            -1
                                                                            pos_0)
                                                                           i_1))
                                                                        (case-lambda
                                                                         ((key_0
                                                                           val_0)
                                                                          (hash-set
                                                                           table_0
                                                                           key_0
                                                                           val_0))
                                                                         (args
                                                                          (raise-binding-result-arity-error
                                                                           2
                                                                           args))))))
                                                                  (values
                                                                   table_1))))
                                                           (for-loop_0
                                                            table_1
                                                            (hash-iterate-next
                                                             cmap_0
                                                             i_0))))
                                                        (args
                                                         (raise-binding-result-arity-error
                                                          2
                                                          args))))
                                                      table_0))))))
                                             (for-loop_0
                                              hash2610
                                              (hash-iterate-first cmap_0))))))
                                     (let ((app_0
                                            (count->mask count_0 rest?_0)))
                                       (let ((app_1
                                              (extract-procedure-wrap-data_0
                                               e_0)))
                                         (let ((app_2
                                                (let ((len_0
                                                       (hash-count cmap_0)))
                                                  (begin
                                                    (if (exact-nonnegative-integer?
                                                         len_0)
                                                      (void)
                                                      (raise-argument-error
                                                       'for/vector
                                                       "exact-nonnegative-integer?"
                                                       len_0))
                                                    (let ((v_0
                                                           (make-vector
                                                            len_0
                                                            0)))
                                                      (begin
                                                        (if (zero? len_0)
                                                          (void)
                                                          (let ((end_0
                                                                 (hash-count
                                                                  cmap_0)))
                                                            (begin
                                                              (letrec*
                                                               ((for-loop_0
                                                                 (|#%name|
                                                                  for-loop
                                                                  (lambda (i_0
                                                                           pos_0)
                                                                    (begin
                                                                      (if (<
                                                                           pos_0
                                                                           end_0)
                                                                        (let ((i_1
                                                                               (let ((i_1
                                                                                      (begin
                                                                                        (unsafe-vector*-set!
                                                                                         v_0
                                                                                         i_0
                                                                                         (let ((temp11_0
                                                                                                (hash-ref
                                                                                                 rev-cmap_0
                                                                                                 pos_0)))
                                                                                           (stack->pos.1
                                                                                            #f
                                                                                            temp11_0
                                                                                            stk-i_0)))
                                                                                        (unsafe-fx+
                                                                                         1
                                                                                         i_0))))
                                                                                 (values
                                                                                  i_1))))
                                                                          (if (if (not
                                                                                   (let ((x_0
                                                                                          (list
                                                                                           pos_0)))
                                                                                     (unsafe-fx=
                                                                                      i_1
                                                                                      len_0)))
                                                                                #t
                                                                                #f)
                                                                            (for-loop_0
                                                                             i_1
                                                                             (+
                                                                              pos_0
                                                                              1))
                                                                            i_1))
                                                                        i_0))))))
                                                               (for-loop_0
                                                                0
                                                                0)))))
                                                        v_0))))))
                                           (vector
                                            'lambda
                                            app_0
                                            app_1
                                            app_2
                                            (add-boxes/remove-unused_0
                                             new-body_0
                                             ids_0
                                             mutated_0
                                             body-env_0
                                             body-stk-i_0)))))))))))
                          (args (raise-binding-result-arity-error 3 args)))))
                       (args (raise-binding-result-arity-error 2 args))))
                     (if (if (eq? 'case-lambda hd_0)
                           (let ((a_0 (cdr (unwrap e_0))))
                             (if (wrap-list? a_0)
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (result_0 lst_0)
                                       (begin
                                         (if (not (null? (unwrap lst_0)))
                                           (let ((v_0
                                                  (if (pair? (unwrap lst_0))
                                                    (wrap-car lst_0)
                                                    lst_0)))
                                             (let ((rest_0
                                                    (if (pair? (unwrap lst_0))
                                                      (wrap-cdr lst_0)
                                                      null)))
                                               (let ((v_1 v_0))
                                                 (let ((result_1
                                                        (let ((result_1
                                                               (let ((p_0
                                                                      (unwrap
                                                                       v_1)))
                                                                 (if (pair?
                                                                      p_0)
                                                                   #t
                                                                   #f))))
                                                          (values result_1))))
                                                   (if (if (not
                                                            (let ((x_0
                                                                   (list v_1)))
                                                              (not result_1)))
                                                         #t
                                                         #f)
                                                     (for-loop_0
                                                      result_1
                                                      rest_0)
                                                     result_1)))))
                                           result_0))))))
                                  (for-loop_0 #t a_0)))
                               #f))
                           #f)
                       (call-with-values
                        (lambda ()
                          (let ((d_0 (cdr (unwrap e_0))))
                            (call-with-values
                             (lambda ()
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (idss_0 bodys_0 lst_0)
                                       (begin
                                         (if (not (null? (unwrap lst_0)))
                                           (let ((v_0
                                                  (if (pair? (unwrap lst_0))
                                                    (wrap-car lst_0)
                                                    lst_0)))
                                             (let ((rest_0
                                                    (if (pair? (unwrap lst_0))
                                                      (wrap-cdr lst_0)
                                                      null)))
                                               (let ((v_1 v_0))
                                                 (call-with-values
                                                  (lambda ()
                                                    (call-with-values
                                                     (lambda ()
                                                       (call-with-values
                                                        (lambda ()
                                                          (let ((p_0
                                                                 (unwrap v_1)))
                                                            (let ((idss_1
                                                                   (let ((a_0
                                                                          (car
                                                                           p_0)))
                                                                     a_0)))
                                                              (let ((bodys_1
                                                                     (let ((d_1
                                                                            (cdr
                                                                             p_0)))
                                                                       d_1)))
                                                                (let ((idss_2
                                                                       idss_1))
                                                                  (values
                                                                   idss_2
                                                                   bodys_1))))))
                                                        (case-lambda
                                                         ((idss13_0 bodys14_0)
                                                          (values
                                                           (cons
                                                            idss13_0
                                                            idss_0)
                                                           (cons
                                                            bodys14_0
                                                            bodys_0)))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args)))))
                                                     (case-lambda
                                                      ((idss_1 bodys_1)
                                                       (values idss_1 bodys_1))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args)))))
                                                  (case-lambda
                                                   ((idss_1 bodys_1)
                                                    (for-loop_0
                                                     idss_1
                                                     bodys_1
                                                     rest_0))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args)))))))
                                           (values idss_0 bodys_0)))))))
                                  (for-loop_0 null null d_0))))
                             (case-lambda
                              ((idss_0 bodys_0)
                               (let ((app_0 (reverse$1 idss_0)))
                                 (values app_0 (reverse$1 bodys_0))))
                              (args
                               (raise-binding-result-arity-error 2 args))))))
                        (case-lambda
                         ((idss_0 bodys_0)
                          (let ((lams_0
                                 (reverse$1
                                  (begin
                                    (letrec*
                                     ((for-loop_0
                                       (|#%name|
                                        for-loop
                                        (lambda (fold-var_0 lst_0 lst_1)
                                          (begin
                                            (if (if (pair? lst_0)
                                                  (pair? lst_1)
                                                  #f)
                                              (let ((ids_0 (unsafe-car lst_0)))
                                                (let ((rest_0
                                                       (unsafe-cdr lst_0)))
                                                  (let ((body_0
                                                         (unsafe-car lst_1)))
                                                    (let ((rest_1
                                                           (unsafe-cdr lst_1)))
                                                      (let ((fold-var_1
                                                             (let ((fold-var_1
                                                                    (cons
                                                                     (compile-expr_0
                                                                      serializable?_0
                                                                      (list*
                                                                       'lambda
                                                                       ids_0
                                                                       body_0)
                                                                      env_0
                                                                      stack-depth_0
                                                                      stk-i_0
                                                                      tail?_0
                                                                      mutated_0)
                                                                     fold-var_0)))
                                                               (values
                                                                fold-var_1))))
                                                        (for-loop_0
                                                         fold-var_1
                                                         rest_0
                                                         rest_1))))))
                                              fold-var_0))))))
                                     (for-loop_0 null idss_0 bodys_0))))))
                            (let ((mask_0
                                   (begin
                                     (letrec*
                                      ((for-loop_0
                                        (|#%name|
                                         for-loop
                                         (lambda (mask_0 lst_0)
                                           (begin
                                             (if (pair? lst_0)
                                               (let ((lam_0
                                                      (unsafe-car lst_0)))
                                                 (let ((rest_0
                                                        (unsafe-cdr lst_0)))
                                                   (let ((mask_1
                                                          (let ((mask_1
                                                                 (bitwise-ior
                                                                  mask_0
                                                                  (if (if (eq?
                                                                           'lambda
                                                                           (unsafe-vector*-ref
                                                                            lam_0
                                                                            0))
                                                                        #t
                                                                        #f)
                                                                    (let ((mask_1
                                                                           (unsafe-vector*-ref
                                                                            lam_0
                                                                            1)))
                                                                      mask_1)
                                                                    (error
                                                                     'interp-match
                                                                     "no matching clause")))))
                                                            (values mask_1))))
                                                     (for-loop_0
                                                      mask_1
                                                      rest_0))))
                                               mask_0))))))
                                      (for-loop_0 0 lams_0)))))
                              (list->vector
                               (list*
                                'case-lambda
                                mask_0
                                (extract-procedure-wrap-data_0 e_0)
                                lams_0)))))
                         (args (raise-binding-result-arity-error 2 args))))
                       (if (if (eq? 'let hd_0)
                             (let ((a_0 (cdr (unwrap e_0))))
                               (let ((p_0 (unwrap a_0)))
                                 (if (pair? p_0)
                                   (if (let ((a_1 (car p_0)))
                                         (if (wrap-list? a_1)
                                           (begin
                                             (letrec*
                                              ((for-loop_0
                                                (|#%name|
                                                 for-loop
                                                 (lambda (result_0 lst_0)
                                                   (begin
                                                     (if (not
                                                          (null?
                                                           (unwrap lst_0)))
                                                       (let ((v_0
                                                              (if (pair?
                                                                   (unwrap
                                                                    lst_0))
                                                                (wrap-car
                                                                 lst_0)
                                                                lst_0)))
                                                         (let ((rest_0
                                                                (if (pair?
                                                                     (unwrap
                                                                      lst_0))
                                                                  (wrap-cdr
                                                                   lst_0)
                                                                  null)))
                                                           (let ((v_1 v_0))
                                                             (let ((result_1
                                                                    (let ((result_1
                                                                           (let ((p_1
                                                                                  (unwrap
                                                                                   v_1)))
                                                                             (if (pair?
                                                                                  p_1)
                                                                               (let ((a_2
                                                                                      (cdr
                                                                                       p_1)))
                                                                                 (let ((p_2
                                                                                        (unwrap
                                                                                         a_2)))
                                                                                   (if (pair?
                                                                                        p_2)
                                                                                     (let ((a_3
                                                                                            (cdr
                                                                                             p_2)))
                                                                                       (let ((app_0
                                                                                              (unwrap
                                                                                               '())))
                                                                                         (eq?
                                                                                          app_0
                                                                                          (unwrap
                                                                                           a_3))))
                                                                                     #f)))
                                                                               #f))))
                                                                      (values
                                                                       result_1))))
                                                               (if (if (not
                                                                        (let ((x_0
                                                                               (list
                                                                                v_1)))
                                                                          (not
                                                                           result_1)))
                                                                     #t
                                                                     #f)
                                                                 (for-loop_0
                                                                  result_1
                                                                  rest_0)
                                                                 result_1)))))
                                                       result_0))))))
                                              (for-loop_0 #t a_1)))
                                           #f))
                                     #t
                                     #f)
                                   #f)))
                             #f)
                         (call-with-values
                          (lambda ()
                            (let ((d_0 (cdr (unwrap e_0))))
                              (let ((p_0 (unwrap d_0)))
                                (call-with-values
                                 (lambda ()
                                   (let ((a_0 (car p_0)))
                                     (call-with-values
                                      (lambda ()
                                        (begin
                                          (letrec*
                                           ((for-loop_0
                                             (|#%name|
                                              for-loop
                                              (lambda (ids_0 rhss_0 lst_0)
                                                (begin
                                                  (if (not
                                                       (null? (unwrap lst_0)))
                                                    (let ((v_0
                                                           (if (pair?
                                                                (unwrap lst_0))
                                                             (wrap-car lst_0)
                                                             lst_0)))
                                                      (let ((rest_0
                                                             (if (pair?
                                                                  (unwrap
                                                                   lst_0))
                                                               (wrap-cdr lst_0)
                                                               null)))
                                                        (let ((v_1 v_0))
                                                          (call-with-values
                                                           (lambda ()
                                                             (call-with-values
                                                              (lambda ()
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (let ((p_1
                                                                          (unwrap
                                                                           v_1)))
                                                                     (let ((ids_1
                                                                            (let ((a_1
                                                                                   (car
                                                                                    p_1)))
                                                                              a_1)))
                                                                       (let ((rhss_1
                                                                              (let ((d_1
                                                                                     (cdr
                                                                                      p_1)))
                                                                                (let ((a_1
                                                                                       (car
                                                                                        (unwrap
                                                                                         d_1))))
                                                                                  a_1))))
                                                                         (let ((ids_2
                                                                                ids_1))
                                                                           (values
                                                                            ids_2
                                                                            rhss_1))))))
                                                                 (case-lambda
                                                                  ((ids15_0
                                                                    rhss16_0)
                                                                   (values
                                                                    (cons
                                                                     ids15_0
                                                                     ids_0)
                                                                    (cons
                                                                     rhss16_0
                                                                     rhss_0)))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    2
                                                                    args)))))
                                                              (case-lambda
                                                               ((ids_1 rhss_1)
                                                                (values
                                                                 ids_1
                                                                 rhss_1))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 2
                                                                 args)))))
                                                           (case-lambda
                                                            ((ids_1 rhss_1)
                                                             (for-loop_0
                                                              ids_1
                                                              rhss_1
                                                              rest_0))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              2
                                                              args)))))))
                                                    (values ids_0 rhss_0)))))))
                                           (for-loop_0 null null a_0))))
                                      (case-lambda
                                       ((ids_0 rhss_0)
                                        (let ((app_0 (reverse$1 ids_0)))
                                          (values app_0 (reverse$1 rhss_0))))
                                       (args
                                        (raise-binding-result-arity-error
                                         2
                                         args))))))
                                 (case-lambda
                                  ((ids_0 rhss_0)
                                   (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                                     (let ((ids_1 ids_0) (rhss_1 rhss_0))
                                       (values ids_1 rhss_1 body_0))))
                                  (args
                                   (raise-binding-result-arity-error
                                    2
                                    args)))))))
                          (case-lambda
                           ((ids_0 rhss_0 body_0)
                            (let ((len_0 (length ids_0)))
                              (let ((body-env_0
                                     (begin
                                       (letrec*
                                        ((for-loop_0
                                          (|#%name|
                                           for-loop
                                           (lambda (env_1 lst_0 pos_0)
                                             (begin
                                               (if (if (pair? lst_0) #t #f)
                                                 (let ((id_0
                                                        (unsafe-car lst_0)))
                                                   (let ((rest_0
                                                          (unsafe-cdr lst_0)))
                                                     (let ((env_2
                                                            (let ((env_2
                                                                   (let ((u_0
                                                                          (unwrap
                                                                           id_0)))
                                                                     (let ((pos_1
                                                                            (+
                                                                             stack-depth_0
                                                                             pos_0)))
                                                                       (hash-set
                                                                        env_1
                                                                        u_0
                                                                        (if (hash-ref
                                                                             mutated_0
                                                                             u_0
                                                                             #f)
                                                                          (boxed2.1
                                                                           pos_1)
                                                                          pos_1))))))
                                                              (values env_2))))
                                                       (for-loop_0
                                                        env_2
                                                        rest_0
                                                        (+ pos_0 1)))))
                                                 env_1))))))
                                        (for-loop_0 env_0 ids_0 0)))))
                                (let ((body-stack-depth_0
                                       (+ stack-depth_0 len_0)))
                                  (let ((c-body_0
                                         (compile-body_0
                                          serializable?_0
                                          body_0
                                          body-env_0
                                          body-stack-depth_0
                                          stk-i_0
                                          tail?_0
                                          mutated_0)))
                                    (let ((new-body_0
                                           (add-boxes/remove-unused_0
                                            c-body_0
                                            ids_0
                                            mutated_0
                                            body-env_0
                                            stk-i_0)))
                                      (let ((pos_0
                                             (stack->pos.1
                                              #t
                                              stack-depth_0
                                              stk-i_0)))
                                        (begin
                                          (stack-info-forget!
                                           stk-i_0
                                           stack-depth_0
                                           pos_0
                                           len_0)
                                          (let ((new-rhss_0
                                                 (compile-list_0
                                                  serializable?_0
                                                  rhss_0
                                                  env_0
                                                  stack-depth_0
                                                  stk-i_0
                                                  #f
                                                  mutated_0)))
                                            (let ((or-part_0
                                                   (if (null? new-rhss_0)
                                                     new-body_0
                                                     (if (vector? new-body_0)
                                                       (if (if (eq?
                                                                'let
                                                                (unsafe-vector*-ref
                                                                 new-body_0
                                                                 0))
                                                             #t
                                                             #f)
                                                         (let ((pos2_0
                                                                (unsafe-vector*-ref
                                                                 new-body_0
                                                                 1)))
                                                           (let ((rhss2_0
                                                                  (unsafe-vector*-ref
                                                                   new-body_0
                                                                   2)))
                                                             (let ((b_0
                                                                    (unsafe-vector*-ref
                                                                     new-body_0
                                                                     3)))
                                                               (let ((rhss2_1
                                                                      rhss2_0)
                                                                     (pos2_1
                                                                      pos2_0))
                                                                 (vector
                                                                  'let*
                                                                  (list
                                                                   pos_0
                                                                   pos2_1)
                                                                  (list
                                                                   (list->vector
                                                                    new-rhss_0)
                                                                   rhss2_1)
                                                                  b_0)))))
                                                         (if (if (eq?
                                                                  'let*
                                                                  (unsafe-vector*-ref
                                                                   new-body_0
                                                                   0))
                                                               #t
                                                               #f)
                                                           (let ((poss_0
                                                                  (unsafe-vector*-ref
                                                                   new-body_0
                                                                   1)))
                                                             (let ((rhsss_0
                                                                    (unsafe-vector*-ref
                                                                     new-body_0
                                                                     2)))
                                                               (let ((b_0
                                                                      (unsafe-vector*-ref
                                                                       new-body_0
                                                                       3)))
                                                                 (let ((rhsss_1
                                                                        rhsss_0)
                                                                       (poss_1
                                                                        poss_0))
                                                                   (vector
                                                                    'let*
                                                                    (cons
                                                                     pos_0
                                                                     poss_1)
                                                                    (cons
                                                                     (list->vector
                                                                      new-rhss_0)
                                                                     rhsss_1)
                                                                    b_0)))))
                                                           (if (if (eq?
                                                                    'clear
                                                                    (unsafe-vector*-ref
                                                                     new-body_0
                                                                     0))
                                                                 #t
                                                                 #f)
                                                             (let ((poss_0
                                                                    (unsafe-vector*-ref
                                                                     new-body_0
                                                                     1)))
                                                               (let ((e_1
                                                                      (unsafe-vector*-ref
                                                                       new-body_0
                                                                       2)))
                                                                 (let ((poss_1
                                                                        poss_0))
                                                                   (letrec*
                                                                    ((loop_4
                                                                      (|#%name|
                                                                       loop
                                                                       (lambda (pos_1
                                                                                poss_2
                                                                                rhss_1)
                                                                         (begin
                                                                           (if (null?
                                                                                rhss_1)
                                                                             (let ((e_2
                                                                                    (if (null?
                                                                                         poss_2)
                                                                                      e_1
                                                                                      (vector
                                                                                       'clear
                                                                                       poss_2
                                                                                       e_1))))
                                                                               (vector
                                                                                'beginl
                                                                                (append
                                                                                 new-rhss_0
                                                                                 (begins->list_0
                                                                                  e_2))))
                                                                             (if (null?
                                                                                  poss_2)
                                                                               #f
                                                                               (if (eqv?
                                                                                    pos_1
                                                                                    (car
                                                                                     poss_2))
                                                                                 (let ((app_0
                                                                                        (add1
                                                                                         pos_1)))
                                                                                   (let ((app_1
                                                                                          (cdr
                                                                                           poss_2)))
                                                                                     (loop_4
                                                                                      app_0
                                                                                      app_1
                                                                                      (cdr
                                                                                       rhss_1))))
                                                                                 #f))))))))
                                                                    (loop_4
                                                                     pos_0
                                                                     poss_1
                                                                     new-rhss_0)))))
                                                             #f)))
                                                       #f))))
                                              (if or-part_0
                                                or-part_0
                                                (vector
                                                 'let
                                                 pos_0
                                                 (list->vector new-rhss_0)
                                                 new-body_0))))))))))))
                           (args (raise-binding-result-arity-error 3 args))))
                         (if (if (eq? 'letrec hd_0) #t #f)
                           (compile-letrec_0
                            serializable?_0
                            e_0
                            env_0
                            stack-depth_0
                            stk-i_0
                            tail?_0
                            mutated_0)
                           (if (if (eq? 'letrec* hd_0) #t #f)
                             (compile-letrec_0
                              serializable?_0
                              e_0
                              env_0
                              stack-depth_0
                              stk-i_0
                              tail?_0
                              mutated_0)
                             (if (if (eq? 'begin hd_0) #t #f)
                               (let ((vs_0
                                      (let ((d_0 (cdr (unwrap e_0)))) d_0)))
                                 (compile-body_0
                                  serializable?_0
                                  vs_0
                                  env_0
                                  stack-depth_0
                                  stk-i_0
                                  tail?_0
                                  mutated_0))
                               (if (if (eq? 'begin0 hd_0)
                                     (let ((a_0 (cdr (unwrap e_0))))
                                       (let ((p_0 (unwrap a_0)))
                                         (if (pair? p_0)
                                           (let ((a_1 (cdr p_0)))
                                             (let ((app_0 (unwrap '())))
                                               (eq? app_0 (unwrap a_1))))
                                           #f)))
                                     #f)
                                 (let ((e_1
                                        (let ((d_0 (cdr (unwrap e_0))))
                                          (let ((a_0 (car (unwrap d_0))))
                                            a_0))))
                                   (compile-expr_0
                                    serializable?_0
                                    e_1
                                    env_0
                                    stack-depth_0
                                    stk-i_0
                                    tail?_0
                                    mutated_0))
                                 (if (if (eq? 'begin0 hd_0)
                                       (let ((a_0 (cdr (unwrap e_0))))
                                         (let ((p_0 (unwrap a_0)))
                                           (if (pair? p_0) #t #f)))
                                       #f)
                                   (call-with-values
                                    (lambda ()
                                      (let ((d_0 (cdr (unwrap e_0))))
                                        (let ((p_0 (unwrap d_0)))
                                          (let ((e_1
                                                 (let ((a_0 (car p_0))) a_0)))
                                            (let ((vs_0
                                                   (let ((d_1 (cdr p_0)))
                                                     d_1)))
                                              (let ((e_2 e_1))
                                                (values e_2 vs_0)))))))
                                    (case-lambda
                                     ((e_1 vs_0)
                                      (let ((new-body_0
                                             (compile-body_0
                                              serializable?_0
                                              vs_0
                                              env_0
                                              stack-depth_0
                                              stk-i_0
                                              #f
                                              mutated_0)))
                                        (vector
                                         'begin0
                                         (compile-expr_0
                                          serializable?_0
                                          e_1
                                          env_0
                                          stack-depth_0
                                          stk-i_0
                                          #f
                                          mutated_0)
                                         new-body_0)))
                                     (args
                                      (raise-binding-result-arity-error
                                       2
                                       args))))
                                   (if (if (eq? '$value hd_0)
                                         (let ((a_0 (cdr (unwrap e_0))))
                                           (let ((p_0 (unwrap a_0)))
                                             (if (pair? p_0)
                                               (let ((a_1 (cdr p_0)))
                                                 (let ((app_0 (unwrap '())))
                                                   (eq? app_0 (unwrap a_1))))
                                               #f)))
                                         #f)
                                     (let ((e_1
                                            (let ((d_0 (cdr (unwrap e_0))))
                                              (let ((a_0 (car (unwrap d_0))))
                                                a_0))))
                                       (vector
                                        '$value
                                        (compile-expr_0
                                         serializable?_0
                                         e_1
                                         env_0
                                         stack-depth_0
                                         stk-i_0
                                         #f
                                         mutated_0)))
                                     (if (if (eq? 'if hd_0)
                                           (let ((a_0 (cdr (unwrap e_0))))
                                             (let ((p_0 (unwrap a_0)))
                                               (if (pair? p_0)
                                                 (let ((a_1 (cdr p_0)))
                                                   (let ((p_1 (unwrap a_1)))
                                                     (if (pair? p_1)
                                                       (let ((a_2 (cdr p_1)))
                                                         (let ((p_2
                                                                (unwrap a_2)))
                                                           (if (pair? p_2)
                                                             (let ((a_3
                                                                    (cdr p_2)))
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_3))))
                                                             #f)))
                                                       #f)))
                                                 #f)))
                                           #f)
                                       (call-with-values
                                        (lambda ()
                                          (let ((d_0 (cdr (unwrap e_0))))
                                            (let ((p_0 (unwrap d_0)))
                                              (let ((tst_0
                                                     (let ((a_0 (car p_0)))
                                                       a_0)))
                                                (call-with-values
                                                 (lambda ()
                                                   (let ((d_1 (cdr p_0)))
                                                     (let ((p_1 (unwrap d_1)))
                                                       (let ((thn_0
                                                              (let ((a_0
                                                                     (car
                                                                      p_1)))
                                                                a_0)))
                                                         (let ((els_0
                                                                (let ((d_2
                                                                       (cdr
                                                                        p_1)))
                                                                  (let ((a_0
                                                                         (car
                                                                          (unwrap
                                                                           d_2))))
                                                                    a_0))))
                                                           (let ((thn_1 thn_0))
                                                             (values
                                                              thn_1
                                                              els_0)))))))
                                                 (case-lambda
                                                  ((thn_0 els_0)
                                                   (let ((tst_1 tst_0))
                                                     (values
                                                      tst_1
                                                      thn_0
                                                      els_0)))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    2
                                                    args))))))))
                                        (case-lambda
                                         ((tst_0 thn_0 els_0)
                                          (let ((then-stk-i_0
                                                 (stack-info-branch stk-i_0)))
                                            (let ((else-stk-i_0
                                                   (stack-info-branch
                                                    stk-i_0)))
                                              (let ((new-then_0
                                                     (compile-expr_0
                                                      serializable?_0
                                                      thn_0
                                                      env_0
                                                      stack-depth_0
                                                      then-stk-i_0
                                                      tail?_0
                                                      mutated_0)))
                                                (let ((new-else_0
                                                       (compile-expr_0
                                                        serializable?_0
                                                        els_0
                                                        env_0
                                                        stack-depth_0
                                                        else-stk-i_0
                                                        tail?_0
                                                        mutated_0)))
                                                  (let ((all-clear_0
                                                         (stack-info-merge!
                                                          stk-i_0
                                                          (list
                                                           then-stk-i_0
                                                           else-stk-i_0))))
                                                    (let ((app_0
                                                           (compile-expr_0
                                                            serializable?_0
                                                            tst_0
                                                            env_0
                                                            stack-depth_0
                                                            stk-i_0
                                                            #f
                                                            mutated_0)))
                                                      (let ((app_1
                                                             (add-clears_0
                                                              new-then_0
                                                              then-stk-i_0
                                                              all-clear_0)))
                                                        (vector
                                                         'if
                                                         app_0
                                                         app_1
                                                         (add-clears_0
                                                          new-else_0
                                                          else-stk-i_0
                                                          all-clear_0))))))))))
                                         (args
                                          (raise-binding-result-arity-error
                                           3
                                           args))))
                                       (if (if (eq?
                                                'with-continuation-mark*
                                                hd_0)
                                             (let ((a_0 (cdr (unwrap e_0))))
                                               (let ((p_0 (unwrap a_0)))
                                                 (if (pair? p_0)
                                                   (let ((a_1 (cdr p_0)))
                                                     (let ((p_1 (unwrap a_1)))
                                                       (if (pair? p_1)
                                                         (let ((a_2 (cdr p_1)))
                                                           (let ((p_2
                                                                  (unwrap
                                                                   a_2)))
                                                             (if (pair? p_2)
                                                               (let ((a_3
                                                                      (cdr
                                                                       p_2)))
                                                                 (let ((p_3
                                                                        (unwrap
                                                                         a_3)))
                                                                   (if (pair?
                                                                        p_3)
                                                                     (let ((a_4
                                                                            (cdr
                                                                             p_3)))
                                                                       (let ((app_0
                                                                              (unwrap
                                                                               '())))
                                                                         (eq?
                                                                          app_0
                                                                          (unwrap
                                                                           a_4))))
                                                                     #f)))
                                                               #f)))
                                                         #f)))
                                                   #f)))
                                             #f)
                                         (call-with-values
                                          (lambda ()
                                            (let ((d_0 (cdr (unwrap e_0))))
                                              (let ((p_0 (unwrap d_0)))
                                                (let ((mode_0
                                                       (let ((a_0 (car p_0)))
                                                         a_0)))
                                                  (call-with-values
                                                   (lambda ()
                                                     (let ((d_1 (cdr p_0)))
                                                       (let ((p_1
                                                              (unwrap d_1)))
                                                         (let ((key_0
                                                                (let ((a_0
                                                                       (car
                                                                        p_1)))
                                                                  a_0)))
                                                           (call-with-values
                                                            (lambda ()
                                                              (let ((d_2
                                                                     (cdr
                                                                      p_1)))
                                                                (let ((p_2
                                                                       (unwrap
                                                                        d_2)))
                                                                  (let ((val_0
                                                                         (let ((a_0
                                                                                (car
                                                                                 p_2)))
                                                                           a_0)))
                                                                    (let ((body_0
                                                                           (let ((d_3
                                                                                  (cdr
                                                                                   p_2)))
                                                                             (let ((a_0
                                                                                    (car
                                                                                     (unwrap
                                                                                      d_3))))
                                                                               a_0))))
                                                                      (let ((val_1
                                                                             val_0))
                                                                        (values
                                                                         val_1
                                                                         body_0)))))))
                                                            (case-lambda
                                                             ((val_0 body_0)
                                                              (let ((key_1
                                                                     key_0))
                                                                (values
                                                                 key_1
                                                                 val_0
                                                                 body_0)))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               2
                                                               args))))))))
                                                   (case-lambda
                                                    ((key_0 val_0 body_0)
                                                     (let ((mode_1 mode_0))
                                                       (values
                                                        mode_1
                                                        key_0
                                                        val_0
                                                        body_0)))
                                                    (args
                                                     (raise-binding-result-arity-error
                                                      3
                                                      args))))))))
                                          (case-lambda
                                           ((mode_0 key_0 val_0 body_0)
                                            (let ((new-body_0
                                                   (compile-expr_0
                                                    serializable?_0
                                                    body_0
                                                    env_0
                                                    stack-depth_0
                                                    stk-i_0
                                                    tail?_0
                                                    mutated_0)))
                                              (let ((new-val_0
                                                     (compile-expr_0
                                                      serializable?_0
                                                      val_0
                                                      env_0
                                                      stack-depth_0
                                                      stk-i_0
                                                      #f
                                                      mutated_0)))
                                                (vector
                                                 'wcm
                                                 (compile-expr_0
                                                  serializable?_0
                                                  key_0
                                                  env_0
                                                  stack-depth_0
                                                  stk-i_0
                                                  #f
                                                  mutated_0)
                                                 new-val_0
                                                 new-body_0))))
                                           (args
                                            (raise-binding-result-arity-error
                                             4
                                             args))))
                                         (if (if (eq? 'quote hd_0)
                                               (let ((a_0 (cdr (unwrap e_0))))
                                                 (let ((p_0 (unwrap a_0)))
                                                   (if (pair? p_0)
                                                     (let ((a_1 (cdr p_0)))
                                                       (let ((app_0
                                                              (unwrap '())))
                                                         (eq?
                                                          app_0
                                                          (unwrap a_1))))
                                                     #f)))
                                               #f)
                                           (let ((v_0
                                                  (let ((d_0
                                                         (cdr (unwrap e_0))))
                                                    (let ((a_0
                                                           (car (unwrap d_0))))
                                                      a_0))))
                                             (let ((v_1
                                                    (|#%app|
                                                     strip-annotations
                                                     v_0)))
                                               (if (let ((or-part_0
                                                          (vector? v_1)))
                                                     (if or-part_0
                                                       or-part_0
                                                       (let ((or-part_1
                                                              (pair? v_1)))
                                                         (if or-part_1
                                                           or-part_1
                                                           (let ((or-part_2
                                                                  (symbol?
                                                                   v_1)))
                                                             (if or-part_2
                                                               or-part_2
                                                               (let ((or-part_3
                                                                      (number?
                                                                       v_1)))
                                                                 (if or-part_3
                                                                   or-part_3
                                                                   (box?
                                                                    v_1)))))))))
                                                 (vector 'quote v_1)
                                                 v_1)))
                                           (if (if (eq? 'set! hd_0)
                                                 (let ((a_0
                                                        (cdr (unwrap e_0))))
                                                   (let ((p_0 (unwrap a_0)))
                                                     (if (pair? p_0)
                                                       (let ((a_1 (cdr p_0)))
                                                         (let ((p_1
                                                                (unwrap a_1)))
                                                           (if (pair? p_1)
                                                             (let ((a_2
                                                                    (cdr p_1)))
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_2))))
                                                             #f)))
                                                       #f)))
                                                 #f)
                                             (call-with-values
                                              (lambda ()
                                                (let ((d_0 (cdr (unwrap e_0))))
                                                  (let ((p_0 (unwrap d_0)))
                                                    (let ((id_0
                                                           (let ((a_0
                                                                  (car p_0)))
                                                             a_0)))
                                                      (let ((rhs_0
                                                             (let ((d_1
                                                                    (cdr p_0)))
                                                               (let ((a_0
                                                                      (car
                                                                       (unwrap
                                                                        d_1))))
                                                                 a_0))))
                                                        (let ((id_1 id_0))
                                                          (values
                                                           id_1
                                                           rhs_0)))))))
                                              (case-lambda
                                               ((id_0 rhs_0)
                                                (compile-assignment_0
                                                 serializable?_0
                                                 id_0
                                                 rhs_0
                                                 env_0
                                                 stack-depth_0
                                                 stk-i_0
                                                 mutated_0))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args))))
                                             (if (if (eq? 'define hd_0)
                                                   (let ((a_0
                                                          (cdr (unwrap e_0))))
                                                     (let ((p_0 (unwrap a_0)))
                                                       (if (pair? p_0)
                                                         (let ((a_1 (cdr p_0)))
                                                           (let ((p_1
                                                                  (unwrap
                                                                   a_1)))
                                                             (if (pair? p_1)
                                                               (let ((a_2
                                                                      (cdr
                                                                       p_1)))
                                                                 (let ((app_0
                                                                        (unwrap
                                                                         '())))
                                                                   (eq?
                                                                    app_0
                                                                    (unwrap
                                                                     a_2))))
                                                               #f)))
                                                         #f)))
                                                   #f)
                                               (call-with-values
                                                (lambda ()
                                                  (let ((d_0
                                                         (cdr (unwrap e_0))))
                                                    (let ((p_0 (unwrap d_0)))
                                                      (let ((id_0
                                                             (let ((a_0
                                                                    (car p_0)))
                                                               a_0)))
                                                        (let ((rhs_0
                                                               (let ((d_1
                                                                      (cdr
                                                                       p_0)))
                                                                 (let ((a_0
                                                                        (car
                                                                         (unwrap
                                                                          d_1))))
                                                                   a_0))))
                                                          (let ((id_1 id_0))
                                                            (values
                                                             id_1
                                                             rhs_0)))))))
                                                (case-lambda
                                                 ((id_0 rhs_0)
                                                  (compile-assignment_0
                                                   serializable?_0
                                                   id_0
                                                   rhs_0
                                                   env_0
                                                   stack-depth_0
                                                   stk-i_0
                                                   mutated_0))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   2
                                                   args))))
                                               (if (if (eq?
                                                        'define-values
                                                        hd_0)
                                                     (let ((a_0
                                                            (cdr
                                                             (unwrap e_0))))
                                                       (let ((p_0
                                                              (unwrap a_0)))
                                                         (if (pair? p_0)
                                                           (let ((a_1
                                                                  (cdr p_0)))
                                                             (let ((p_1
                                                                    (unwrap
                                                                     a_1)))
                                                               (if (pair? p_1)
                                                                 (let ((a_2
                                                                        (cdr
                                                                         p_1)))
                                                                   (let ((app_0
                                                                          (unwrap
                                                                           '())))
                                                                     (eq?
                                                                      app_0
                                                                      (unwrap
                                                                       a_2))))
                                                                 #f)))
                                                           #f)))
                                                     #f)
                                                 (call-with-values
                                                  (lambda ()
                                                    (let ((d_0
                                                           (cdr (unwrap e_0))))
                                                      (let ((p_0 (unwrap d_0)))
                                                        (let ((ids_0
                                                               (let ((a_0
                                                                      (car
                                                                       p_0)))
                                                                 a_0)))
                                                          (let ((rhs_0
                                                                 (let ((d_1
                                                                        (cdr
                                                                         p_0)))
                                                                   (let ((a_0
                                                                          (car
                                                                           (unwrap
                                                                            d_1))))
                                                                     a_0))))
                                                            (let ((ids_1
                                                                   ids_0))
                                                              (values
                                                               ids_1
                                                               rhs_0)))))))
                                                  (case-lambda
                                                   ((ids_0 rhs_0)
                                                    (let ((gen-ids_0
                                                           (reverse$1
                                                            (begin
                                                              (letrec*
                                                               ((for-loop_0
                                                                 (|#%name|
                                                                  for-loop
                                                                  (lambda (fold-var_0
                                                                           lst_0)
                                                                    (begin
                                                                      (if (pair?
                                                                           lst_0)
                                                                        (let ((id_0
                                                                               (unsafe-car
                                                                                lst_0)))
                                                                          (let ((rest_0
                                                                                 (unsafe-cdr
                                                                                  lst_0)))
                                                                            (let ((fold-var_1
                                                                                   (let ((fold-var_1
                                                                                          (cons
                                                                                           (deterministic-gensym
                                                                                            (unwrap
                                                                                             id_0))
                                                                                           fold-var_0)))
                                                                                     (values
                                                                                      fold-var_1))))
                                                                              (for-loop_0
                                                                               fold-var_1
                                                                               rest_0))))
                                                                        fold-var_0))))))
                                                               (for-loop_0
                                                                null
                                                                ids_0))))))
                                                      (compile-expr_0
                                                       serializable?_0
                                                       (list
                                                        'call-with-values
                                                        (list
                                                         'lambda
                                                         '()
                                                         rhs_0)
                                                        (list*
                                                         'lambda
                                                         gen-ids_0
                                                         (if (null? ids_0)
                                                           (list (void))
                                                           (reverse$1
                                                            (begin
                                                              (letrec*
                                                               ((for-loop_0
                                                                 (|#%name|
                                                                  for-loop
                                                                  (lambda (fold-var_0
                                                                           lst_0
                                                                           lst_1)
                                                                    (begin
                                                                      (if (if (pair?
                                                                               lst_0)
                                                                            (pair?
                                                                             lst_1)
                                                                            #f)
                                                                        (let ((id_0
                                                                               (unsafe-car
                                                                                lst_0)))
                                                                          (let ((rest_0
                                                                                 (unsafe-cdr
                                                                                  lst_0)))
                                                                            (let ((gen-id_0
                                                                                   (unsafe-car
                                                                                    lst_1)))
                                                                              (let ((rest_1
                                                                                     (unsafe-cdr
                                                                                      lst_1)))
                                                                                (let ((fold-var_1
                                                                                       (cons
                                                                                        (list
                                                                                         'set!
                                                                                         id_0
                                                                                         gen-id_0)
                                                                                        fold-var_0)))
                                                                                  (let ((fold-var_2
                                                                                         (values
                                                                                          fold-var_1)))
                                                                                    (for-loop_0
                                                                                     fold-var_2
                                                                                     rest_0
                                                                                     rest_1)))))))
                                                                        fold-var_0))))))
                                                               (for-loop_0
                                                                null
                                                                ids_0
                                                                gen-ids_0)))))))
                                                       env_0
                                                       stack-depth_0
                                                       stk-i_0
                                                       tail?_0
                                                       mutated_0)))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args))))
                                                 (if (if (eq?
                                                          'call-with-values
                                                          hd_0)
                                                       (let ((a_0
                                                              (cdr
                                                               (unwrap e_0))))
                                                         (let ((p_0
                                                                (unwrap a_0)))
                                                           (if (pair? p_0)
                                                             (let ((a_1
                                                                    (cdr p_0)))
                                                               (let ((p_1
                                                                      (unwrap
                                                                       a_1)))
                                                                 (if (pair?
                                                                      p_1)
                                                                   (if (let ((a_2
                                                                              (car
                                                                               p_1)))
                                                                         (let ((p_2
                                                                                (unwrap
                                                                                 a_2)))
                                                                           (if (pair?
                                                                                p_2)
                                                                             (if (let ((a_3
                                                                                        (car
                                                                                         p_2)))
                                                                                   (let ((app_0
                                                                                          (unwrap
                                                                                           'lambda)))
                                                                                     (eq?
                                                                                      app_0
                                                                                      (unwrap
                                                                                       a_3))))
                                                                               (let ((a_3
                                                                                      (cdr
                                                                                       p_2)))
                                                                                 (let ((p_3
                                                                                        (unwrap
                                                                                         a_3)))
                                                                                   (if (pair?
                                                                                        p_3)
                                                                                     #t
                                                                                     #f)))
                                                                               #f)
                                                                             #f)))
                                                                     (let ((a_2
                                                                            (cdr
                                                                             p_1)))
                                                                       (let ((app_0
                                                                              (unwrap
                                                                               '())))
                                                                         (eq?
                                                                          app_0
                                                                          (unwrap
                                                                           a_2))))
                                                                     #f)
                                                                   #f)))
                                                             #f)))
                                                       #f)
                                                   (call-with-values
                                                    (lambda ()
                                                      (let ((d_0
                                                             (cdr
                                                              (unwrap e_0))))
                                                        (let ((p_0
                                                               (unwrap d_0)))
                                                          (let ((proc1_0
                                                                 (let ((a_0
                                                                        (car
                                                                         p_0)))
                                                                   a_0)))
                                                            (call-with-values
                                                             (lambda ()
                                                               (let ((d_1
                                                                      (cdr
                                                                       p_0)))
                                                                 (let ((a_0
                                                                        (car
                                                                         (unwrap
                                                                          d_1))))
                                                                   (let ((d_2
                                                                          (cdr
                                                                           (unwrap
                                                                            a_0))))
                                                                     (let ((p_1
                                                                            (unwrap
                                                                             d_2)))
                                                                       (let ((ids_0
                                                                              (let ((a_1
                                                                                     (car
                                                                                      p_1)))
                                                                                a_1)))
                                                                         (let ((body_0
                                                                                (let ((d_3
                                                                                       (cdr
                                                                                        p_1)))
                                                                                  d_3)))
                                                                           (let ((ids_1
                                                                                  ids_0))
                                                                             (values
                                                                              ids_1
                                                                              body_0)))))))))
                                                             (case-lambda
                                                              ((ids_0 body_0)
                                                               (let ((proc1_1
                                                                      proc1_0))
                                                                 (values
                                                                  proc1_1
                                                                  ids_0
                                                                  body_0)))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                2
                                                                args))))))))
                                                    (case-lambda
                                                     ((proc1_0 ids_0 body_0)
                                                      (compile-expr_0
                                                       serializable?_0
                                                       (list
                                                        'call-with-values
                                                        proc1_0
                                                        (list
                                                         'case-lambda
                                                         (list* ids_0 body_0)))
                                                       env_0
                                                       stack-depth_0
                                                       stk-i_0
                                                       tail?_0
                                                       mutated_0))
                                                     (args
                                                      (raise-binding-result-arity-error
                                                       3
                                                       args))))
                                                   (if (if (eq?
                                                            'call-with-values
                                                            hd_0)
                                                         (let ((a_0
                                                                (cdr
                                                                 (unwrap
                                                                  e_0))))
                                                           (let ((p_0
                                                                  (unwrap
                                                                   a_0)))
                                                             (if (pair? p_0)
                                                               (if (let ((a_1
                                                                          (car
                                                                           p_0)))
                                                                     (let ((p_1
                                                                            (unwrap
                                                                             a_1)))
                                                                       (if (pair?
                                                                            p_1)
                                                                         (if (let ((a_2
                                                                                    (car
                                                                                     p_1)))
                                                                               (let ((app_0
                                                                                      (unwrap
                                                                                       'lambda)))
                                                                                 (eq?
                                                                                  app_0
                                                                                  (unwrap
                                                                                   a_2))))
                                                                           (let ((a_2
                                                                                  (cdr
                                                                                   p_1)))
                                                                             (let ((p_2
                                                                                    (unwrap
                                                                                     a_2)))
                                                                               (if (pair?
                                                                                    p_2)
                                                                                 (if (let ((a_3
                                                                                            (car
                                                                                             p_2)))
                                                                                       (let ((app_0
                                                                                              (unwrap
                                                                                               '())))
                                                                                         (eq?
                                                                                          app_0
                                                                                          (unwrap
                                                                                           a_3))))
                                                                                   #t
                                                                                   #f)
                                                                                 #f)))
                                                                           #f)
                                                                         #f)))
                                                                 (let ((a_1
                                                                        (cdr
                                                                         p_0)))
                                                                   (let ((p_1
                                                                          (unwrap
                                                                           a_1)))
                                                                     (if (pair?
                                                                          p_1)
                                                                       (if (let ((a_2
                                                                                  (car
                                                                                   p_1)))
                                                                             (let ((p_2
                                                                                    (unwrap
                                                                                     a_2)))
                                                                               (if (pair?
                                                                                    p_2)
                                                                                 (if (let ((a_3
                                                                                            (car
                                                                                             p_2)))
                                                                                       (let ((app_0
                                                                                              (unwrap
                                                                                               'case-lambda)))
                                                                                         (eq?
                                                                                          app_0
                                                                                          (unwrap
                                                                                           a_3))))
                                                                                   (let ((a_3
                                                                                          (cdr
                                                                                           p_2)))
                                                                                     (if (wrap-list?
                                                                                          a_3)
                                                                                       (begin
                                                                                         (letrec*
                                                                                          ((for-loop_0
                                                                                            (|#%name|
                                                                                             for-loop
                                                                                             (lambda (result_0
                                                                                                      lst_0)
                                                                                               (begin
                                                                                                 (if (not
                                                                                                      (null?
                                                                                                       (unwrap
                                                                                                        lst_0)))
                                                                                                   (let ((v_0
                                                                                                          (if (pair?
                                                                                                               (unwrap
                                                                                                                lst_0))
                                                                                                            (wrap-car
                                                                                                             lst_0)
                                                                                                            lst_0)))
                                                                                                     (let ((rest_0
                                                                                                            (if (pair?
                                                                                                                 (unwrap
                                                                                                                  lst_0))
                                                                                                              (wrap-cdr
                                                                                                               lst_0)
                                                                                                              null)))
                                                                                                       (let ((v_1
                                                                                                              v_0))
                                                                                                         (let ((result_1
                                                                                                                (let ((result_1
                                                                                                                       (let ((p_3
                                                                                                                              (unwrap
                                                                                                                               v_1)))
                                                                                                                         (if (pair?
                                                                                                                              p_3)
                                                                                                                           #t
                                                                                                                           #f))))
                                                                                                                  (values
                                                                                                                   result_1))))
                                                                                                           (if (if (not
                                                                                                                    (let ((x_0
                                                                                                                           (list
                                                                                                                            v_1)))
                                                                                                                      (not
                                                                                                                       result_1)))
                                                                                                                 #t
                                                                                                                 #f)
                                                                                                             (for-loop_0
                                                                                                              result_1
                                                                                                              rest_0)
                                                                                                             result_1)))))
                                                                                                   result_0))))))
                                                                                          (for-loop_0
                                                                                           #t
                                                                                           a_3)))
                                                                                       #f))
                                                                                   #f)
                                                                                 #f)))
                                                                         (let ((a_2
                                                                                (cdr
                                                                                 p_1)))
                                                                           (let ((app_0
                                                                                  (unwrap
                                                                                   '())))
                                                                             (eq?
                                                                              app_0
                                                                              (unwrap
                                                                               a_2))))
                                                                         #f)
                                                                       #f)))
                                                                 #f)
                                                               #f)))
                                                         #f)
                                                     (call-with-values
                                                      (lambda ()
                                                        (let ((d_0
                                                               (cdr
                                                                (unwrap e_0))))
                                                          (let ((p_0
                                                                 (unwrap d_0)))
                                                            (let ((body_0
                                                                   (let ((a_0
                                                                          (car
                                                                           p_0)))
                                                                     (let ((d_1
                                                                            (cdr
                                                                             (unwrap
                                                                              a_0))))
                                                                       (let ((d_2
                                                                              (cdr
                                                                               (unwrap
                                                                                d_1))))
                                                                         d_2)))))
                                                              (call-with-values
                                                               (lambda ()
                                                                 (let ((d_1
                                                                        (cdr
                                                                         p_0)))
                                                                   (let ((a_0
                                                                          (car
                                                                           (unwrap
                                                                            d_1))))
                                                                     (let ((d_2
                                                                            (cdr
                                                                             (unwrap
                                                                              a_0))))
                                                                       (call-with-values
                                                                        (lambda ()
                                                                          (begin
                                                                            (letrec*
                                                                             ((for-loop_0
                                                                               (|#%name|
                                                                                for-loop
                                                                                (lambda (idss_0
                                                                                         bodys_0
                                                                                         lst_0)
                                                                                  (begin
                                                                                    (if (not
                                                                                         (null?
                                                                                          (unwrap
                                                                                           lst_0)))
                                                                                      (let ((v_0
                                                                                             (if (pair?
                                                                                                  (unwrap
                                                                                                   lst_0))
                                                                                               (wrap-car
                                                                                                lst_0)
                                                                                               lst_0)))
                                                                                        (let ((rest_0
                                                                                               (if (pair?
                                                                                                    (unwrap
                                                                                                     lst_0))
                                                                                                 (wrap-cdr
                                                                                                  lst_0)
                                                                                                 null)))
                                                                                          (let ((v_1
                                                                                                 v_0))
                                                                                            (call-with-values
                                                                                             (lambda ()
                                                                                               (call-with-values
                                                                                                (lambda ()
                                                                                                  (call-with-values
                                                                                                   (lambda ()
                                                                                                     (let ((p_1
                                                                                                            (unwrap
                                                                                                             v_1)))
                                                                                                       (let ((idss_1
                                                                                                              (let ((a_1
                                                                                                                     (car
                                                                                                                      p_1)))
                                                                                                                a_1)))
                                                                                                         (let ((bodys_1
                                                                                                                (let ((d_3
                                                                                                                       (cdr
                                                                                                                        p_1)))
                                                                                                                  d_3)))
                                                                                                           (let ((idss_2
                                                                                                                  idss_1))
                                                                                                             (values
                                                                                                              idss_2
                                                                                                              bodys_1))))))
                                                                                                   (case-lambda
                                                                                                    ((idss20_0
                                                                                                      bodys21_0)
                                                                                                     (values
                                                                                                      (cons
                                                                                                       idss20_0
                                                                                                       idss_0)
                                                                                                      (cons
                                                                                                       bodys21_0
                                                                                                       bodys_0)))
                                                                                                    (args
                                                                                                     (raise-binding-result-arity-error
                                                                                                      2
                                                                                                      args)))))
                                                                                                (case-lambda
                                                                                                 ((idss_1
                                                                                                   bodys_1)
                                                                                                  (values
                                                                                                   idss_1
                                                                                                   bodys_1))
                                                                                                 (args
                                                                                                  (raise-binding-result-arity-error
                                                                                                   2
                                                                                                   args)))))
                                                                                             (case-lambda
                                                                                              ((idss_1
                                                                                                bodys_1)
                                                                                               (for-loop_0
                                                                                                idss_1
                                                                                                bodys_1
                                                                                                rest_0))
                                                                                              (args
                                                                                               (raise-binding-result-arity-error
                                                                                                2
                                                                                                args)))))))
                                                                                      (values
                                                                                       idss_0
                                                                                       bodys_0)))))))
                                                                             (for-loop_0
                                                                              null
                                                                              null
                                                                              d_2))))
                                                                        (case-lambda
                                                                         ((idss_0
                                                                           bodys_0)
                                                                          (let ((app_0
                                                                                 (reverse$1
                                                                                  idss_0)))
                                                                            (values
                                                                             app_0
                                                                             (reverse$1
                                                                              bodys_0))))
                                                                         (args
                                                                          (raise-binding-result-arity-error
                                                                           2
                                                                           args))))))))
                                                               (case-lambda
                                                                ((idss_0
                                                                  bodys_0)
                                                                 (let ((body_1
                                                                        body_0))
                                                                   (values
                                                                    body_1
                                                                    idss_0
                                                                    bodys_0)))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args))))))))
                                                      (case-lambda
                                                       ((body_0 idss_0 bodys_0)
                                                        (let ((body-stk-is_0
                                                               (reverse$1
                                                                (begin
                                                                  (letrec*
                                                                   ((for-loop_0
                                                                     (|#%name|
                                                                      for-loop
                                                                      (lambda (fold-var_0
                                                                               lst_0)
                                                                        (begin
                                                                          (if (pair?
                                                                               lst_0)
                                                                            (let ((body_1
                                                                                   (unsafe-car
                                                                                    lst_0)))
                                                                              (let ((rest_0
                                                                                     (unsafe-cdr
                                                                                      lst_0)))
                                                                                (let ((fold-var_1
                                                                                       (let ((fold-var_1
                                                                                              (cons
                                                                                               (stack-info-branch
                                                                                                stk-i_0)
                                                                                               fold-var_0)))
                                                                                         (values
                                                                                          fold-var_1))))
                                                                                  (for-loop_0
                                                                                   fold-var_1
                                                                                   rest_0))))
                                                                            fold-var_0))))))
                                                                   (for-loop_0
                                                                    null
                                                                    bodys_0))))))
                                                          (let ((initial-new-clauses_0
                                                                 (reverse$1
                                                                  (begin
                                                                    (letrec*
                                                                     ((for-loop_0
                                                                       (|#%name|
                                                                        for-loop
                                                                        (lambda (fold-var_0
                                                                                 lst_0
                                                                                 lst_1
                                                                                 lst_2)
                                                                          (begin
                                                                            (if (if (pair?
                                                                                     lst_0)
                                                                                  (if (pair?
                                                                                       lst_1)
                                                                                    (pair?
                                                                                     lst_2)
                                                                                    #f)
                                                                                  #f)
                                                                              (let ((ids_0
                                                                                     (unsafe-car
                                                                                      lst_0)))
                                                                                (let ((rest_0
                                                                                       (unsafe-cdr
                                                                                        lst_0)))
                                                                                  (let ((body_1
                                                                                         (unsafe-car
                                                                                          lst_1)))
                                                                                    (let ((rest_1
                                                                                           (unsafe-cdr
                                                                                            lst_1)))
                                                                                      (let ((body-stk-i_0
                                                                                             (unsafe-car
                                                                                              lst_2)))
                                                                                        (let ((rest_2
                                                                                               (unsafe-cdr
                                                                                                lst_2)))
                                                                                          (let ((fold-var_1
                                                                                                 (let ((fold-var_1
                                                                                                        (cons
                                                                                                         (call-with-values
                                                                                                          (lambda ()
                                                                                                            (args->env_0
                                                                                                             ids_0
                                                                                                             env_0
                                                                                                             stack-depth_0
                                                                                                             mutated_0))
                                                                                                          (case-lambda
                                                                                                           ((new-env_0
                                                                                                             count_0
                                                                                                             rest?_0)
                                                                                                            (let ((new-stack-depth_0
                                                                                                                   (+
                                                                                                                    stack-depth_0
                                                                                                                    count_0)))
                                                                                                              (let ((c-body_0
                                                                                                                     (compile-body_0
                                                                                                                      serializable?_0
                                                                                                                      body_1
                                                                                                                      new-env_0
                                                                                                                      new-stack-depth_0
                                                                                                                      body-stk-i_0
                                                                                                                      tail?_0
                                                                                                                      mutated_0)))
                                                                                                                (let ((new-body_0
                                                                                                                       (add-boxes/remove-unused_0
                                                                                                                        c-body_0
                                                                                                                        ids_0
                                                                                                                        mutated_0
                                                                                                                        new-env_0
                                                                                                                        body-stk-i_0)))
                                                                                                                  (let ((pos_0
                                                                                                                         (stack->pos.1
                                                                                                                          #t
                                                                                                                          stack-depth_0
                                                                                                                          body-stk-i_0)))
                                                                                                                    (begin
                                                                                                                      (stack-info-forget!
                                                                                                                       body-stk-i_0
                                                                                                                       stack-depth_0
                                                                                                                       pos_0
                                                                                                                       count_0)
                                                                                                                      (vector
                                                                                                                       (count->mask
                                                                                                                        count_0
                                                                                                                        rest?_0)
                                                                                                                       new-body_0)))))))
                                                                                                           (args
                                                                                                            (raise-binding-result-arity-error
                                                                                                             3
                                                                                                             args))))
                                                                                                         fold-var_0)))
                                                                                                   (values
                                                                                                    fold-var_1))))
                                                                                            (for-loop_0
                                                                                             fold-var_1
                                                                                             rest_0
                                                                                             rest_1
                                                                                             rest_2))))))))
                                                                              fold-var_0))))))
                                                                     (for-loop_0
                                                                      null
                                                                      idss_0
                                                                      bodys_0
                                                                      body-stk-is_0))))))
                                                            (let ((all-clear_0
                                                                   (stack-info-merge!
                                                                    stk-i_0
                                                                    body-stk-is_0)))
                                                              (let ((app_0
                                                                     (compile-body_0
                                                                      serializable?_0
                                                                      body_0
                                                                      env_0
                                                                      stack-depth_0
                                                                      stk-i_0
                                                                      #f
                                                                      mutated_0)))
                                                                (let ((app_1
                                                                       (stack->pos.1
                                                                        #t
                                                                        stack-depth_0
                                                                        stk-i_0)))
                                                                  (let ((app_2
                                                                         (if (let ((p_0
                                                                                    (unwrap
                                                                                     e_0)))
                                                                               (if (pair?
                                                                                    p_0)
                                                                                 (let ((a_0
                                                                                        (cdr
                                                                                         p_0)))
                                                                                   (let ((p_1
                                                                                          (unwrap
                                                                                           a_0)))
                                                                                     (if (pair?
                                                                                          p_1)
                                                                                       (let ((a_1
                                                                                              (cdr
                                                                                               p_1)))
                                                                                         (let ((p_2
                                                                                                (unwrap
                                                                                                 a_1)))
                                                                                           (if (pair?
                                                                                                p_2)
                                                                                             (let ((a_2
                                                                                                    (cdr
                                                                                                     p_2)))
                                                                                               (let ((app_2
                                                                                                      (unwrap
                                                                                                       '())))
                                                                                                 (eq?
                                                                                                  app_2
                                                                                                  (unwrap
                                                                                                   a_2))))
                                                                                             #f)))
                                                                                       #f)))
                                                                                 #f))
                                                                           (let ((receiver_0
                                                                                  (let ((d_0
                                                                                         (cdr
                                                                                          (unwrap
                                                                                           e_0))))
                                                                                    (let ((d_1
                                                                                           (cdr
                                                                                            (unwrap
                                                                                             d_0))))
                                                                                      (let ((a_0
                                                                                             (car
                                                                                              (unwrap
                                                                                               d_1))))
                                                                                        a_0)))))
                                                                             (wrap-property
                                                                              receiver_0
                                                                              'inferred-name))
                                                                           (error
                                                                            'match
                                                                            "failed ~e"
                                                                            e_0))))
                                                                    (vector
                                                                     'cwv
                                                                     app_0
                                                                     app_1
                                                                     app_2
                                                                     (reverse$1
                                                                      (begin
                                                                        (letrec*
                                                                         ((for-loop_0
                                                                           (|#%name|
                                                                            for-loop
                                                                            (lambda (fold-var_0
                                                                                     lst_0
                                                                                     lst_1)
                                                                              (begin
                                                                                (if (if (pair?
                                                                                         lst_0)
                                                                                      (pair?
                                                                                       lst_1)
                                                                                      #f)
                                                                                  (let ((initial-new-clause_0
                                                                                         (unsafe-car
                                                                                          lst_0)))
                                                                                    (let ((rest_0
                                                                                           (unsafe-cdr
                                                                                            lst_0)))
                                                                                      (let ((body-stk-i_0
                                                                                             (unsafe-car
                                                                                              lst_1)))
                                                                                        (let ((rest_1
                                                                                               (unsafe-cdr
                                                                                                lst_1)))
                                                                                          (let ((fold-var_1
                                                                                                 (let ((fold-var_1
                                                                                                        (cons
                                                                                                         (let ((body_1
                                                                                                                (vector-ref
                                                                                                                 initial-new-clause_0
                                                                                                                 1)))
                                                                                                           (let ((app_3
                                                                                                                  (vector-ref
                                                                                                                   initial-new-clause_0
                                                                                                                   0)))
                                                                                                             (vector
                                                                                                              app_3
                                                                                                              (add-clears_0
                                                                                                               body_1
                                                                                                               body-stk-i_0
                                                                                                               all-clear_0))))
                                                                                                         fold-var_0)))
                                                                                                   (values
                                                                                                    fold-var_1))))
                                                                                            (for-loop_0
                                                                                             fold-var_1
                                                                                             rest_0
                                                                                             rest_1))))))
                                                                                  fold-var_0))))))
                                                                         (for-loop_0
                                                                          null
                                                                          initial-new-clauses_0
                                                                          body-stk-is_0))))))))))))
                                                       (args
                                                        (raise-binding-result-arity-error
                                                         3
                                                         args))))
                                                     (if (if (eq?
                                                              'call-with-module-prompt
                                                              hd_0)
                                                           (let ((a_0
                                                                  (cdr
                                                                   (unwrap
                                                                    e_0))))
                                                             (let ((p_0
                                                                    (unwrap
                                                                     a_0)))
                                                               (if (pair? p_0)
                                                                 (if (let ((a_1
                                                                            (car
                                                                             p_0)))
                                                                       (let ((p_1
                                                                              (unwrap
                                                                               a_1)))
                                                                         (if (pair?
                                                                              p_1)
                                                                           (if (let ((a_2
                                                                                      (car
                                                                                       p_1)))
                                                                                 (let ((app_0
                                                                                        (unwrap
                                                                                         'lambda)))
                                                                                   (eq?
                                                                                    app_0
                                                                                    (unwrap
                                                                                     a_2))))
                                                                             (let ((a_2
                                                                                    (cdr
                                                                                     p_1)))
                                                                               (let ((p_2
                                                                                      (unwrap
                                                                                       a_2)))
                                                                                 (if (pair?
                                                                                      p_2)
                                                                                   (if (let ((a_3
                                                                                              (car
                                                                                               p_2)))
                                                                                         (let ((app_0
                                                                                                (unwrap
                                                                                                 '())))
                                                                                           (eq?
                                                                                            app_0
                                                                                            (unwrap
                                                                                             a_3))))
                                                                                     #t
                                                                                     #f)
                                                                                   #f)))
                                                                             #f)
                                                                           #f)))
                                                                   (let ((a_1
                                                                          (cdr
                                                                           p_0)))
                                                                     (let ((app_0
                                                                            (unwrap
                                                                             '())))
                                                                       (eq?
                                                                        app_0
                                                                        (unwrap
                                                                         a_1))))
                                                                   #f)
                                                                 #f)))
                                                           #f)
                                                       (let ((body_0
                                                              (let ((d_0
                                                                     (cdr
                                                                      (unwrap
                                                                       e_0))))
                                                                (let ((a_0
                                                                       (car
                                                                        (unwrap
                                                                         d_0))))
                                                                  (let ((d_1
                                                                         (cdr
                                                                          (unwrap
                                                                           a_0))))
                                                                    (let ((d_2
                                                                           (cdr
                                                                            (unwrap
                                                                             d_1))))
                                                                      d_2))))))
                                                         (vector
                                                          'cwmp0
                                                          (compile-body_0
                                                           serializable?_0
                                                           body_0
                                                           env_0
                                                           stack-depth_0
                                                           stk-i_0
                                                           tail?_0
                                                           mutated_0)))
                                                       (if (if (eq?
                                                                'call-with-module-prompt
                                                                hd_0)
                                                             (let ((a_0
                                                                    (cdr
                                                                     (unwrap
                                                                      e_0))))
                                                               (let ((p_0
                                                                      (unwrap
                                                                       a_0)))
                                                                 (if (pair?
                                                                      p_0)
                                                                   (if (let ((a_1
                                                                              (car
                                                                               p_0)))
                                                                         (let ((p_1
                                                                                (unwrap
                                                                                 a_1)))
                                                                           (if (pair?
                                                                                p_1)
                                                                             (if (let ((a_2
                                                                                        (car
                                                                                         p_1)))
                                                                                   (let ((app_0
                                                                                          (unwrap
                                                                                           'lambda)))
                                                                                     (eq?
                                                                                      app_0
                                                                                      (unwrap
                                                                                       a_2))))
                                                                               (let ((a_2
                                                                                      (cdr
                                                                                       p_1)))
                                                                                 (let ((p_2
                                                                                        (unwrap
                                                                                         a_2)))
                                                                                   (if (pair?
                                                                                        p_2)
                                                                                     (if (let ((a_3
                                                                                                (car
                                                                                                 p_2)))
                                                                                           (let ((app_0
                                                                                                  (unwrap
                                                                                                   '())))
                                                                                             (eq?
                                                                                              app_0
                                                                                              (unwrap
                                                                                               a_3))))
                                                                                       #t
                                                                                       #f)
                                                                                     #f)))
                                                                               #f)
                                                                             #f)))
                                                                     (let ((a_1
                                                                            (cdr
                                                                             p_0)))
                                                                       (let ((p_1
                                                                              (unwrap
                                                                               a_1)))
                                                                         (if (pair?
                                                                              p_1)
                                                                           (if (let ((a_2
                                                                                      (car
                                                                                       p_1)))
                                                                                 (let ((p_2
                                                                                        (unwrap
                                                                                         a_2)))
                                                                                   (if (pair?
                                                                                        p_2)
                                                                                     (if (let ((a_3
                                                                                                (car
                                                                                                 p_2)))
                                                                                           (let ((app_0
                                                                                                  (unwrap
                                                                                                   'quote)))
                                                                                             (eq?
                                                                                              app_0
                                                                                              (unwrap
                                                                                               a_3))))
                                                                                       (let ((a_3
                                                                                              (cdr
                                                                                               p_2)))
                                                                                         (let ((p_3
                                                                                                (unwrap
                                                                                                 a_3)))
                                                                                           (if (pair?
                                                                                                p_3)
                                                                                             (let ((a_4
                                                                                                    (cdr
                                                                                                     p_3)))
                                                                                               (let ((app_0
                                                                                                      (unwrap
                                                                                                       '())))
                                                                                                 (eq?
                                                                                                  app_0
                                                                                                  (unwrap
                                                                                                   a_4))))
                                                                                             #f)))
                                                                                       #f)
                                                                                     #f)))
                                                                             (let ((a_2
                                                                                    (cdr
                                                                                     p_1)))
                                                                               (let ((p_2
                                                                                      (unwrap
                                                                                       a_2)))
                                                                                 (if (pair?
                                                                                      p_2)
                                                                                   (if (let ((a_3
                                                                                              (car
                                                                                               p_2)))
                                                                                         (let ((p_3
                                                                                                (unwrap
                                                                                                 a_3)))
                                                                                           (if (pair?
                                                                                                p_3)
                                                                                             (if (let ((a_4
                                                                                                        (car
                                                                                                         p_3)))
                                                                                                   (let ((app_0
                                                                                                          (unwrap
                                                                                                           'quote)))
                                                                                                     (eq?
                                                                                                      app_0
                                                                                                      (unwrap
                                                                                                       a_4))))
                                                                                               (let ((a_4
                                                                                                      (cdr
                                                                                                       p_3)))
                                                                                                 (let ((p_4
                                                                                                        (unwrap
                                                                                                         a_4)))
                                                                                                   (if (pair?
                                                                                                        p_4)
                                                                                                     (let ((a_5
                                                                                                            (cdr
                                                                                                             p_4)))
                                                                                                       (let ((app_0
                                                                                                              (unwrap
                                                                                                               '())))
                                                                                                         (eq?
                                                                                                          app_0
                                                                                                          (unwrap
                                                                                                           a_5))))
                                                                                                     #f)))
                                                                                               #f)
                                                                                             #f)))
                                                                                     (let ((a_3
                                                                                            (cdr
                                                                                             p_2)))
                                                                                       (wrap-list?
                                                                                        a_3))
                                                                                     #f)
                                                                                   #f)))
                                                                             #f)
                                                                           #f)))
                                                                     #f)
                                                                   #f)))
                                                             #f)
                                                         (call-with-values
                                                          (lambda ()
                                                            (let ((d_0
                                                                   (cdr
                                                                    (unwrap
                                                                     e_0))))
                                                              (let ((p_0
                                                                     (unwrap
                                                                      d_0)))
                                                                (let ((body_0
                                                                       (let ((a_0
                                                                              (car
                                                                               p_0)))
                                                                         (let ((d_1
                                                                                (cdr
                                                                                 (unwrap
                                                                                  a_0))))
                                                                           (let ((d_2
                                                                                  (cdr
                                                                                   (unwrap
                                                                                    d_1))))
                                                                             d_2)))))
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (let ((d_1
                                                                            (cdr
                                                                             p_0)))
                                                                       (let ((p_1
                                                                              (unwrap
                                                                               d_1)))
                                                                         (let ((ids_0
                                                                                (let ((a_0
                                                                                       (car
                                                                                        p_1)))
                                                                                  (let ((d_2
                                                                                         (cdr
                                                                                          (unwrap
                                                                                           a_0))))
                                                                                    (let ((a_1
                                                                                           (car
                                                                                            (unwrap
                                                                                             d_2))))
                                                                                      a_1)))))
                                                                           (call-with-values
                                                                            (lambda ()
                                                                              (let ((d_2
                                                                                     (cdr
                                                                                      p_1)))
                                                                                (let ((p_2
                                                                                       (unwrap
                                                                                        d_2)))
                                                                                  (let ((constances_0
                                                                                         (let ((a_0
                                                                                                (car
                                                                                                 p_2)))
                                                                                           (let ((d_3
                                                                                                  (cdr
                                                                                                   (unwrap
                                                                                                    a_0))))
                                                                                             (let ((a_1
                                                                                                    (car
                                                                                                     (unwrap
                                                                                                      d_3))))
                                                                                               a_1)))))
                                                                                    (let ((vars_0
                                                                                           (let ((d_3
                                                                                                  (cdr
                                                                                                   p_2)))
                                                                                             (unwrap-list
                                                                                              d_3))))
                                                                                      (let ((constances_1
                                                                                             constances_0))
                                                                                        (values
                                                                                         constances_1
                                                                                         vars_0)))))))
                                                                            (case-lambda
                                                                             ((constances_0
                                                                               vars_0)
                                                                              (let ((ids_1
                                                                                     ids_0))
                                                                                (values
                                                                                 ids_1
                                                                                 constances_0
                                                                                 vars_0)))
                                                                             (args
                                                                              (raise-binding-result-arity-error
                                                                               2
                                                                               args))))))))
                                                                   (case-lambda
                                                                    ((ids_0
                                                                      constances_0
                                                                      vars_0)
                                                                     (let ((body_1
                                                                            body_0))
                                                                       (values
                                                                        body_1
                                                                        ids_0
                                                                        constances_0
                                                                        vars_0)))
                                                                    (args
                                                                     (raise-binding-result-arity-error
                                                                      3
                                                                      args))))))))
                                                          (case-lambda
                                                           ((body_0
                                                             ids_0
                                                             constances_0
                                                             vars_0)
                                                            (let ((app_0
                                                                   (compile-body_0
                                                                    serializable?_0
                                                                    body_0
                                                                    env_0
                                                                    stack-depth_0
                                                                    stk-i_0
                                                                    tail?_0
                                                                    mutated_0)))
                                                              (vector
                                                               'cwmp
                                                               app_0
                                                               ids_0
                                                               constances_0
                                                               (compile-list_0
                                                                serializable?_0
                                                                vars_0
                                                                env_0
                                                                stack-depth_0
                                                                stk-i_0
                                                                #f
                                                                mutated_0))))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             4
                                                             args))))
                                                         (if (if (eq?
                                                                  'variable-set!
                                                                  hd_0)
                                                               (let ((a_0
                                                                      (cdr
                                                                       (unwrap
                                                                        e_0))))
                                                                 (let ((p_0
                                                                        (unwrap
                                                                         a_0)))
                                                                   (if (pair?
                                                                        p_0)
                                                                     (let ((a_1
                                                                            (cdr
                                                                             p_0)))
                                                                       (let ((p_1
                                                                              (unwrap
                                                                               a_1)))
                                                                         (if (pair?
                                                                              p_1)
                                                                           (let ((a_2
                                                                                  (cdr
                                                                                   p_1)))
                                                                             (let ((app_0
                                                                                    (unwrap
                                                                                     '())))
                                                                               (eq?
                                                                                app_0
                                                                                (unwrap
                                                                                 a_2))))
                                                                           #f)))
                                                                     #f)))
                                                               #f)
                                                           (call-with-values
                                                            (lambda ()
                                                              (let ((d_0
                                                                     (cdr
                                                                      (unwrap
                                                                       e_0))))
                                                                (let ((p_0
                                                                       (unwrap
                                                                        d_0)))
                                                                  (let ((dest-id_0
                                                                         (let ((a_0
                                                                                (car
                                                                                 p_0)))
                                                                           a_0)))
                                                                    (let ((e_1
                                                                           (let ((d_1
                                                                                  (cdr
                                                                                   p_0)))
                                                                             (let ((a_0
                                                                                    (car
                                                                                     (unwrap
                                                                                      d_1))))
                                                                               a_0))))
                                                                      (let ((dest-id_1
                                                                             dest-id_0))
                                                                        (values
                                                                         dest-id_1
                                                                         e_1)))))))
                                                            (case-lambda
                                                             ((dest-id_0 e_1)
                                                              (let ((dest-var_0
                                                                     (hash-ref
                                                                      env_0
                                                                      (unwrap
                                                                       dest-id_0))))
                                                                (let ((new-expr_0
                                                                       (compile-expr_0
                                                                        serializable?_0
                                                                        e_1
                                                                        env_0
                                                                        stack-depth_0
                                                                        stk-i_0
                                                                        #f
                                                                        mutated_0)))
                                                                  (vector
                                                                   'set-variable!
                                                                   (stack->pos.1
                                                                    #f
                                                                    dest-var_0
                                                                    stk-i_0)
                                                                   new-expr_0
                                                                   #f
                                                                   #f))))
                                                             (args
                                                              (raise-binding-result-arity-error
                                                               2
                                                               args))))
                                                           (if (if (eq?
                                                                    'variable-set!/define
                                                                    hd_0)
                                                                 (let ((a_0
                                                                        (cdr
                                                                         (unwrap
                                                                          e_0))))
                                                                   (let ((p_0
                                                                          (unwrap
                                                                           a_0)))
                                                                     (if (pair?
                                                                          p_0)
                                                                       (let ((a_1
                                                                              (cdr
                                                                               p_0)))
                                                                         (let ((p_1
                                                                                (unwrap
                                                                                 a_1)))
                                                                           (if (pair?
                                                                                p_1)
                                                                             (let ((a_2
                                                                                    (cdr
                                                                                     p_1)))
                                                                               (let ((p_2
                                                                                      (unwrap
                                                                                       a_2)))
                                                                                 (if (pair?
                                                                                      p_2)
                                                                                   (if (let ((a_3
                                                                                              (car
                                                                                               p_2)))
                                                                                         (let ((p_3
                                                                                                (unwrap
                                                                                                 a_3)))
                                                                                           (if (pair?
                                                                                                p_3)
                                                                                             (if (let ((a_4
                                                                                                        (car
                                                                                                         p_3)))
                                                                                                   (let ((app_0
                                                                                                          (unwrap
                                                                                                           'quote)))
                                                                                                     (eq?
                                                                                                      app_0
                                                                                                      (unwrap
                                                                                                       a_4))))
                                                                                               (let ((a_4
                                                                                                      (cdr
                                                                                                       p_3)))
                                                                                                 (let ((p_4
                                                                                                        (unwrap
                                                                                                         a_4)))
                                                                                                   (if (pair?
                                                                                                        p_4)
                                                                                                     (let ((a_5
                                                                                                            (cdr
                                                                                                             p_4)))
                                                                                                       (let ((app_0
                                                                                                              (unwrap
                                                                                                               '())))
                                                                                                         (eq?
                                                                                                          app_0
                                                                                                          (unwrap
                                                                                                           a_5))))
                                                                                                     #f)))
                                                                                               #f)
                                                                                             #f)))
                                                                                     (let ((a_3
                                                                                            (cdr
                                                                                             p_2)))
                                                                                       (let ((app_0
                                                                                              (unwrap
                                                                                               '())))
                                                                                         (eq?
                                                                                          app_0
                                                                                          (unwrap
                                                                                           a_3))))
                                                                                     #f)
                                                                                   #f)))
                                                                             #f)))
                                                                       #f)))
                                                                 #f)
                                                             (call-with-values
                                                              (lambda ()
                                                                (let ((d_0
                                                                       (cdr
                                                                        (unwrap
                                                                         e_0))))
                                                                  (let ((p_0
                                                                         (unwrap
                                                                          d_0)))
                                                                    (let ((dest-id_0
                                                                           (let ((a_0
                                                                                  (car
                                                                                   p_0)))
                                                                             a_0)))
                                                                      (call-with-values
                                                                       (lambda ()
                                                                         (let ((d_1
                                                                                (cdr
                                                                                 p_0)))
                                                                           (let ((p_1
                                                                                  (unwrap
                                                                                   d_1)))
                                                                             (let ((e_1
                                                                                    (let ((a_0
                                                                                           (car
                                                                                            p_1)))
                                                                                      a_0)))
                                                                               (let ((constance_0
                                                                                      (let ((d_2
                                                                                             (cdr
                                                                                              p_1)))
                                                                                        (let ((a_0
                                                                                               (car
                                                                                                (unwrap
                                                                                                 d_2))))
                                                                                          (let ((d_3
                                                                                                 (cdr
                                                                                                  (unwrap
                                                                                                   a_0))))
                                                                                            (let ((a_1
                                                                                                   (car
                                                                                                    (unwrap
                                                                                                     d_3))))
                                                                                              a_1))))))
                                                                                 (let ((e_2
                                                                                        e_1))
                                                                                   (values
                                                                                    e_2
                                                                                    constance_0)))))))
                                                                       (case-lambda
                                                                        ((e_1
                                                                          constance_0)
                                                                         (let ((dest-id_1
                                                                                dest-id_0))
                                                                           (values
                                                                            dest-id_1
                                                                            e_1
                                                                            constance_0)))
                                                                        (args
                                                                         (raise-binding-result-arity-error
                                                                          2
                                                                          args))))))))
                                                              (case-lambda
                                                               ((dest-id_0
                                                                 e_1
                                                                 constance_0)
                                                                (let ((dest-var_0
                                                                       (hash-ref
                                                                        env_0
                                                                        (unwrap
                                                                         dest-id_0))))
                                                                  (let ((new-expr_0
                                                                         (compile-expr_0
                                                                          serializable?_0
                                                                          e_1
                                                                          env_0
                                                                          stack-depth_0
                                                                          stk-i_0
                                                                          #f
                                                                          mutated_0)))
                                                                    (vector
                                                                     'set-variable!
                                                                     (stack->pos.1
                                                                      #f
                                                                      dest-var_0
                                                                      stk-i_0)
                                                                     new-expr_0
                                                                     constance_0
                                                                     #t))))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 3
                                                                 args))))
                                                             (if (if (eq?
                                                                      'variable-ref
                                                                      hd_0)
                                                                   (let ((a_0
                                                                          (cdr
                                                                           (unwrap
                                                                            e_0))))
                                                                     (let ((p_0
                                                                            (unwrap
                                                                             a_0)))
                                                                       (if (pair?
                                                                            p_0)
                                                                         (let ((a_1
                                                                                (cdr
                                                                                 p_0)))
                                                                           (let ((app_0
                                                                                  (unwrap
                                                                                   '())))
                                                                             (eq?
                                                                              app_0
                                                                              (unwrap
                                                                               a_1))))
                                                                         #f)))
                                                                   #f)
                                                               (let ((id_0
                                                                      (let ((d_0
                                                                             (cdr
                                                                              (unwrap
                                                                               e_0))))
                                                                        (let ((a_0
                                                                               (car
                                                                                (unwrap
                                                                                 d_0))))
                                                                          a_0))))
                                                                 (let ((var_0
                                                                        (hash-ref
                                                                         env_0
                                                                         (unwrap
                                                                          id_0))))
                                                                   (vector
                                                                    'ref-variable/checked
                                                                    (stack->pos.1
                                                                     #f
                                                                     var_0
                                                                     stk-i_0))))
                                                               (if (if (eq?
                                                                        'variable-ref/no-check
                                                                        hd_0)
                                                                     (let ((a_0
                                                                            (cdr
                                                                             (unwrap
                                                                              e_0))))
                                                                       (let ((p_0
                                                                              (unwrap
                                                                               a_0)))
                                                                         (if (pair?
                                                                              p_0)
                                                                           (let ((a_1
                                                                                  (cdr
                                                                                   p_0)))
                                                                             (let ((app_0
                                                                                    (unwrap
                                                                                     '())))
                                                                               (eq?
                                                                                app_0
                                                                                (unwrap
                                                                                 a_1))))
                                                                           #f)))
                                                                     #f)
                                                                 (let ((id_0
                                                                        (let ((d_0
                                                                               (cdr
                                                                                (unwrap
                                                                                 e_0))))
                                                                          (let ((a_0
                                                                                 (car
                                                                                  (unwrap
                                                                                   d_0))))
                                                                            a_0))))
                                                                   (let ((var_0
                                                                          (hash-ref
                                                                           env_0
                                                                           (unwrap
                                                                            id_0))))
                                                                     (vector
                                                                      'ref-variable
                                                                      (stack->pos.1
                                                                       #f
                                                                       var_0
                                                                       stk-i_0))))
                                                                 (if (if (eq?
                                                                          '|#%app|
                                                                          hd_0)
                                                                       (let ((a_0
                                                                              (cdr
                                                                               (unwrap
                                                                                e_0))))
                                                                         (wrap-list?
                                                                          a_0))
                                                                       #f)
                                                                   (compile-apply_0
                                                                    serializable?_0
                                                                    (wrap-cdr
                                                                     e_0)
                                                                    env_0
                                                                    stack-depth_0
                                                                    stk-i_0
                                                                    tail?_0
                                                                    mutated_0)
                                                                   (if (let ((p_0
                                                                              (unwrap
                                                                               e_0)))
                                                                         (if (pair?
                                                                              p_0)
                                                                           (let ((a_0
                                                                                  (cdr
                                                                                   p_0)))
                                                                             (wrap-list?
                                                                              a_0))
                                                                           #f))
                                                                     (let ((rator_0
                                                                            (let ((a_0
                                                                                   (car
                                                                                    (unwrap
                                                                                     e_0))))
                                                                              a_0)))
                                                                       (compile-apply_0
                                                                        serializable?_0
                                                                        e_0
                                                                        env_0
                                                                        stack-depth_0
                                                                        stk-i_0
                                                                        tail?_0
                                                                        mutated_0))
                                                                     (let ((u_0
                                                                            (unwrap
                                                                             e_0)))
                                                                       (let ((var_0
                                                                              (hash-ref
                                                                               env_0
                                                                               u_0
                                                                               #f)))
                                                                         (if (not
                                                                              var_0)
                                                                           (if (number?
                                                                                u_0)
                                                                             (vector
                                                                              'quote
                                                                              u_0)
                                                                             (let ((c1_0
                                                                                    (if (symbol?
                                                                                         u_0)
                                                                                      (if (not
                                                                                           serializable?_0)
                                                                                        (hash-ref
                                                                                         primitives
                                                                                         u_0
                                                                                         #f)
                                                                                        #f)
                                                                                      #f)))
                                                                               (if c1_0
                                                                                 (if (procedure?
                                                                                      c1_0)
                                                                                   c1_0
                                                                                   (vector
                                                                                    'quote
                                                                                    c1_0))
                                                                                 u_0)))
                                                                           (if (indirect?
                                                                                var_0)
                                                                             (let ((pos_0
                                                                                    (let ((temp36_0
                                                                                           (indirect-pos
                                                                                            var_0)))
                                                                                      (stack->pos.1
                                                                                       #f
                                                                                       temp36_0
                                                                                       stk-i_0))))
                                                                               (let ((elem_0
                                                                                      (indirect-element
                                                                                       var_0)))
                                                                                 (cons
                                                                                  pos_0
                                                                                  elem_0)))
                                                                             (if (boxed?
                                                                                  var_0)
                                                                               (let ((pos_0
                                                                                      (let ((temp38_0
                                                                                             (boxed-pos
                                                                                              var_0)))
                                                                                        (stack->pos.1
                                                                                         #f
                                                                                         temp38_0
                                                                                         stk-i_0))))
                                                                                 (if (boxed/check?
                                                                                      var_0)
                                                                                   (vector
                                                                                    'unbox/checked
                                                                                    pos_0
                                                                                    u_0)
                                                                                   (vector
                                                                                    'unbox
                                                                                    pos_0)))
                                                                               (stack->pos.1
                                                                                #f
                                                                                var_0
                                                                                stk-i_0))))))))))))))))))))))))))))))))))))
           (compile-letrec_0
            (|#%name|
             compile-letrec
             (lambda (serializable?_0
                      e_0
                      env_0
                      stack-depth_0
                      stk-i_0
                      tail?_0
                      mutated_0)
               (begin
                 (if (let ((p_0 (unwrap e_0)))
                       (if (pair? p_0)
                         (let ((a_0 (cdr p_0)))
                           (let ((p_1 (unwrap a_0)))
                             (if (pair? p_1)
                               (if (let ((a_1 (car p_1)))
                                     (if (wrap-list? a_1)
                                       (begin
                                         (letrec*
                                          ((for-loop_0
                                            (|#%name|
                                             for-loop
                                             (lambda (result_0 lst_0)
                                               (begin
                                                 (if (not
                                                      (null? (unwrap lst_0)))
                                                   (let ((v_0
                                                          (if (pair?
                                                               (unwrap lst_0))
                                                            (wrap-car lst_0)
                                                            lst_0)))
                                                     (let ((rest_0
                                                            (if (pair?
                                                                 (unwrap
                                                                  lst_0))
                                                              (wrap-cdr lst_0)
                                                              null)))
                                                       (let ((v_1 v_0))
                                                         (let ((result_1
                                                                (let ((result_1
                                                                       (let ((p_2
                                                                              (unwrap
                                                                               v_1)))
                                                                         (if (pair?
                                                                              p_2)
                                                                           (let ((a_2
                                                                                  (cdr
                                                                                   p_2)))
                                                                             (let ((p_3
                                                                                    (unwrap
                                                                                     a_2)))
                                                                               (if (pair?
                                                                                    p_3)
                                                                                 (let ((a_3
                                                                                        (cdr
                                                                                         p_3)))
                                                                                   (let ((app_0
                                                                                          (unwrap
                                                                                           '())))
                                                                                     (eq?
                                                                                      app_0
                                                                                      (unwrap
                                                                                       a_3))))
                                                                                 #f)))
                                                                           #f))))
                                                                  (values
                                                                   result_1))))
                                                           (if (if (not
                                                                    (let ((x_0
                                                                           (list
                                                                            v_1)))
                                                                      (not
                                                                       result_1)))
                                                                 #t
                                                                 #f)
                                                             (for-loop_0
                                                              result_1
                                                              rest_0)
                                                             result_1)))))
                                                   result_0))))))
                                          (for-loop_0 #t a_1)))
                                       #f))
                                 #t
                                 #f)
                               #f)))
                         #f))
                   (call-with-values
                    (lambda ()
                      (let ((d_0 (cdr (unwrap e_0))))
                        (let ((p_0 (unwrap d_0)))
                          (call-with-values
                           (lambda ()
                             (let ((a_0 (car p_0)))
                               (call-with-values
                                (lambda ()
                                  (begin
                                    (letrec*
                                     ((for-loop_0
                                       (|#%name|
                                        for-loop
                                        (lambda (ids_0 rhss_0 lst_0)
                                          (begin
                                            (if (not (null? (unwrap lst_0)))
                                              (let ((v_0
                                                     (if (pair? (unwrap lst_0))
                                                       (wrap-car lst_0)
                                                       lst_0)))
                                                (let ((rest_0
                                                       (if (pair?
                                                            (unwrap lst_0))
                                                         (wrap-cdr lst_0)
                                                         null)))
                                                  (let ((v_1 v_0))
                                                    (call-with-values
                                                     (lambda ()
                                                       (call-with-values
                                                        (lambda ()
                                                          (call-with-values
                                                           (lambda ()
                                                             (let ((p_1
                                                                    (unwrap
                                                                     v_1)))
                                                               (let ((ids_1
                                                                      (let ((a_1
                                                                             (car
                                                                              p_1)))
                                                                        a_1)))
                                                                 (let ((rhss_1
                                                                        (let ((d_1
                                                                               (cdr
                                                                                p_1)))
                                                                          (let ((a_1
                                                                                 (car
                                                                                  (unwrap
                                                                                   d_1))))
                                                                            a_1))))
                                                                   (let ((ids_2
                                                                          ids_1))
                                                                     (values
                                                                      ids_2
                                                                      rhss_1))))))
                                                           (case-lambda
                                                            ((ids42_0 rhss43_0)
                                                             (values
                                                              (cons
                                                               ids42_0
                                                               ids_0)
                                                              (cons
                                                               rhss43_0
                                                               rhss_0)))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              2
                                                              args)))))
                                                        (case-lambda
                                                         ((ids_1 rhss_1)
                                                          (values
                                                           ids_1
                                                           rhss_1))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args)))))
                                                     (case-lambda
                                                      ((ids_1 rhss_1)
                                                       (for-loop_0
                                                        ids_1
                                                        rhss_1
                                                        rest_0))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args)))))))
                                              (values ids_0 rhss_0)))))))
                                     (for-loop_0 null null a_0))))
                                (case-lambda
                                 ((ids_0 rhss_0)
                                  (let ((app_0 (reverse$1 ids_0)))
                                    (values app_0 (reverse$1 rhss_0))))
                                 (args
                                  (raise-binding-result-arity-error
                                   2
                                   args))))))
                           (case-lambda
                            ((ids_0 rhss_0)
                             (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                               (let ((ids_1 ids_0) (rhss_1 rhss_0))
                                 (values ids_1 rhss_1 body_0))))
                            (args
                             (raise-binding-result-arity-error 2 args)))))))
                    (case-lambda
                     ((ids_0 rhss_0 body_0)
                      (let ((count_0 (length ids_0)))
                        (let ((rhs-env_0
                               (make-env_0
                                count_0
                                env_0
                                ids_0
                                stack-depth_0
                                boxed/check3.1)))
                          (let ((body-env_0
                                 (make-env_0
                                  count_0
                                  env_0
                                  ids_0
                                  stack-depth_0
                                  boxed2.1)))
                            (let ((body-stack-depth_0
                                   (+ stack-depth_0 count_0)))
                              (let ((c-body_0
                                     (compile-body_0
                                      serializable?_0
                                      body_0
                                      body-env_0
                                      body-stack-depth_0
                                      stk-i_0
                                      tail?_0
                                      mutated_0)))
                                (let ((new-rhss_0
                                       (list->vector
                                        (compile-list_0
                                         serializable?_0
                                         rhss_0
                                         rhs-env_0
                                         body-stack-depth_0
                                         stk-i_0
                                         #f
                                         mutated_0))))
                                  (let ((new-body_0
                                         (add-boxes/remove-unused_0
                                          c-body_0
                                          ids_0
                                          hash2610
                                          body-env_0
                                          stk-i_0)))
                                    (let ((pos_0
                                           (stack->pos.1
                                            #t
                                            stack-depth_0
                                            stk-i_0)))
                                      (begin
                                        (stack-info-forget!
                                         stk-i_0
                                         stack-depth_0
                                         pos_0
                                         count_0)
                                        (vector
                                         'letrec
                                         pos_0
                                         new-rhss_0
                                         new-body_0)))))))))))
                     (args (raise-binding-result-arity-error 3 args))))
                   (error 'match "failed ~e" e_0))))))
           (compile-linklet-body_0
            (|#%name|
             compile-linklet-body
             (lambda (serializable?_0 v_0 env_0 stack-depth_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap v_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'lambda hd_0)
                         (let ((a_0 (cdr (unwrap v_0))))
                           (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
                         #f)
                     (call-with-values
                      (lambda ()
                        (let ((d_0 (cdr (unwrap v_0))))
                          (let ((p_0 (unwrap d_0)))
                            (let ((args_0 (let ((a_0 (car p_0))) a_0)))
                              (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                                (let ((args_1 args_0))
                                  (values args_1 body_0)))))))
                      (case-lambda
                       ((args_0 body_0)
                        (let ((mutated_0
                               (extract-list-mutated_0 body_0 hash2610)))
                          (let ((num-args_0 (length args_0)))
                            (let ((args-env_0
                                   (begin
                                     (letrec*
                                      ((for-loop_0
                                        (|#%name|
                                         for-loop
                                         (lambda (env_1 lst_0 pos_0)
                                           (begin
                                             (if (if (pair? lst_0) #t #f)
                                               (let ((arg_0
                                                      (unsafe-car lst_0)))
                                                 (let ((rest_0
                                                        (unsafe-cdr lst_0)))
                                                   (let ((env_2
                                                          (let ((env_2
                                                                 (hash-set
                                                                  env_1
                                                                  arg_0
                                                                  (+
                                                                   stack-depth_0
                                                                   pos_0))))
                                                            (values env_2))))
                                                     (for-loop_0
                                                      env_2
                                                      rest_0
                                                      (+ pos_0 1)))))
                                               env_1))))))
                                      (for-loop_0 env_0 args_0 0)))))
                              (let ((body-vars-index_0
                                     (+ num-args_0 stack-depth_0)))
                                (call-with-values
                                 (lambda ()
                                   (begin
                                     (letrec*
                                      ((for-loop_0
                                        (|#%name|
                                         for-loop
                                         (lambda (env_1 num-body-vars_0 lst_0)
                                           (begin
                                             (if (not (null? (unwrap lst_0)))
                                               (let ((e_0
                                                      (if (pair?
                                                           (unwrap lst_0))
                                                        (wrap-car lst_0)
                                                        lst_0)))
                                                 (let ((rest_0
                                                        (if (pair?
                                                             (unwrap lst_0))
                                                          (wrap-cdr lst_0)
                                                          null)))
                                                   (let ((e_1 e_0))
                                                     (call-with-values
                                                      (lambda ()
                                                        (call-with-values
                                                         (lambda ()
                                                           (loop_0
                                                            body-vars-index_0
                                                            e_1
                                                            env_1
                                                            num-body-vars_0))
                                                         (case-lambda
                                                          ((env_2
                                                            num-body-vars_1)
                                                           (values
                                                            env_2
                                                            num-body-vars_1))
                                                          (args
                                                           (raise-binding-result-arity-error
                                                            2
                                                            args)))))
                                                      (case-lambda
                                                       ((env_2 num-body-vars_1)
                                                        (for-loop_0
                                                         env_2
                                                         num-body-vars_1
                                                         rest_0))
                                                       (args
                                                        (raise-binding-result-arity-error
                                                         2
                                                         args)))))))
                                               (values
                                                env_1
                                                num-body-vars_0)))))))
                                      (for-loop_0 args-env_0 0 body_0))))
                                 (case-lambda
                                  ((body-env_0 num-body-vars_0)
                                   (let ((body-stack-depth_0
                                          (+
                                           num-body-vars_0
                                           num-args_0
                                           stack-depth_0)))
                                     (let ((stk-i_0
                                            (make-stack-info.1
                                             #f
                                             hash2610
                                             #t)))
                                       (let ((new-body_0
                                              (compile-top-body_0
                                               serializable?_0
                                               body_0
                                               body-env_0
                                               body-stack-depth_0
                                               stk-i_0
                                               mutated_0)))
                                         (values
                                          new-body_0
                                          num-body-vars_0)))))
                                  (args
                                   (raise-binding-result-arity-error
                                    2
                                    args)))))))))
                       (args (raise-binding-result-arity-error 2 args))))
                     (error 'match "failed ~e" v_0)))))))
           (compile-list_0
            (|#%name|
             compile-list
             (lambda (serializable?_0
                      body_0
                      env_0
                      stack-depth_0
                      stk-i_0
                      tail?_0
                      mutated_0)
               (begin
                 (loop_2
                  env_0
                  mutated_0
                  serializable?_0
                  stack-depth_0
                  stk-i_0
                  tail?_0
                  body_0)))))
           (compile-top-body_0
            (|#%name|
             compile-top-body
             (lambda (serializable?_0
                      body_0
                      env_0
                      stack-depth_0
                      stk-i_0
                      mutated_0)
               (begin
                 (let ((bs_0
                        (loop_1
                         env_0
                         mutated_0
                         serializable?_0
                         stack-depth_0
                         stk-i_0
                         body_0)))
                   (if (null? bs_0)
                     '#(void)
                     (if (if (pair? bs_0) (null? (cdr bs_0)) #f)
                       (car bs_0)
                       (list->vector (cons 'begin bs_0)))))))))
           (env-set_0
            (|#%name|
             env-set
             (lambda (env_0 u_0 pos_0 mutated_0)
               (begin
                 (hash-set
                  env_0
                  u_0
                  (if (hash-ref mutated_0 u_0 #f) (boxed2.1 pos_0) pos_0))))))
           (extract-expr-mutated_0
            (|#%name|
             extract-expr-mutated
             (lambda (e_0 mutated_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap e_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'lambda hd_0)
                         (let ((a_0 (cdr (unwrap e_0))))
                           (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
                         #f)
                     (call-with-values
                      (lambda ()
                        (let ((d_0 (cdr (unwrap e_0))))
                          (let ((p_0 (unwrap d_0)))
                            (let ((ids_0 (let ((a_0 (car p_0))) a_0)))
                              (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                                (let ((ids_1 ids_0))
                                  (values ids_1 body_0)))))))
                      (case-lambda
                       ((ids_0 body_0)
                        (extract-list-mutated_0 body_0 mutated_0))
                       (args (raise-binding-result-arity-error 2 args))))
                     (if (if (eq? 'case-lambda hd_0)
                           (let ((a_0 (cdr (unwrap e_0))))
                             (if (wrap-list? a_0)
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (result_0 lst_0)
                                       (begin
                                         (if (not (null? (unwrap lst_0)))
                                           (let ((v_0
                                                  (if (pair? (unwrap lst_0))
                                                    (wrap-car lst_0)
                                                    lst_0)))
                                             (let ((rest_0
                                                    (if (pair? (unwrap lst_0))
                                                      (wrap-cdr lst_0)
                                                      null)))
                                               (let ((v_1 v_0))
                                                 (let ((result_1
                                                        (let ((result_1
                                                               (let ((p_0
                                                                      (unwrap
                                                                       v_1)))
                                                                 (if (pair?
                                                                      p_0)
                                                                   #t
                                                                   #f))))
                                                          (values result_1))))
                                                   (if (if (not
                                                            (let ((x_0
                                                                   (list v_1)))
                                                              (not result_1)))
                                                         #t
                                                         #f)
                                                     (for-loop_0
                                                      result_1
                                                      rest_0)
                                                     result_1)))))
                                           result_0))))))
                                  (for-loop_0 #t a_0)))
                               #f))
                           #f)
                       (call-with-values
                        (lambda ()
                          (let ((d_0 (cdr (unwrap e_0))))
                            (call-with-values
                             (lambda ()
                               (begin
                                 (letrec*
                                  ((for-loop_0
                                    (|#%name|
                                     for-loop
                                     (lambda (idss_0 bodys_0 lst_0)
                                       (begin
                                         (if (not (null? (unwrap lst_0)))
                                           (let ((v_0
                                                  (if (pair? (unwrap lst_0))
                                                    (wrap-car lst_0)
                                                    lst_0)))
                                             (let ((rest_0
                                                    (if (pair? (unwrap lst_0))
                                                      (wrap-cdr lst_0)
                                                      null)))
                                               (let ((v_1 v_0))
                                                 (call-with-values
                                                  (lambda ()
                                                    (call-with-values
                                                     (lambda ()
                                                       (call-with-values
                                                        (lambda ()
                                                          (let ((p_0
                                                                 (unwrap v_1)))
                                                            (let ((idss_1
                                                                   (let ((a_0
                                                                          (car
                                                                           p_0)))
                                                                     a_0)))
                                                              (let ((bodys_1
                                                                     (let ((d_1
                                                                            (cdr
                                                                             p_0)))
                                                                       d_1)))
                                                                (let ((idss_2
                                                                       idss_1))
                                                                  (values
                                                                   idss_2
                                                                   bodys_1))))))
                                                        (case-lambda
                                                         ((idss51_0 bodys52_0)
                                                          (values
                                                           (cons
                                                            idss51_0
                                                            idss_0)
                                                           (cons
                                                            bodys52_0
                                                            bodys_0)))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args)))))
                                                     (case-lambda
                                                      ((idss_1 bodys_1)
                                                       (values idss_1 bodys_1))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args)))))
                                                  (case-lambda
                                                   ((idss_1 bodys_1)
                                                    (for-loop_0
                                                     idss_1
                                                     bodys_1
                                                     rest_0))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args)))))))
                                           (values idss_0 bodys_0)))))))
                                  (for-loop_0 null null d_0))))
                             (case-lambda
                              ((idss_0 bodys_0)
                               (let ((app_0 (reverse$1 idss_0)))
                                 (values app_0 (reverse$1 bodys_0))))
                              (args
                               (raise-binding-result-arity-error 2 args))))))
                        (case-lambda
                         ((idss_0 bodys_0)
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (mutated_1 lst_0)
                                  (begin
                                    (if (pair? lst_0)
                                      (let ((body_0 (unsafe-car lst_0)))
                                        (let ((rest_0 (unsafe-cdr lst_0)))
                                          (let ((mutated_2
                                                 (let ((mutated_2
                                                        (extract-list-mutated_0
                                                         body_0
                                                         mutated_1)))
                                                   (values mutated_2))))
                                            (for-loop_0 mutated_2 rest_0))))
                                      mutated_1))))))
                             (for-loop_0 mutated_0 bodys_0))))
                         (args (raise-binding-result-arity-error 2 args))))
                       (if (if (eq? 'let hd_0)
                             (let ((a_0 (cdr (unwrap e_0))))
                               (let ((p_0 (unwrap a_0)))
                                 (if (pair? p_0)
                                   (if (let ((a_1 (car p_0)))
                                         (if (wrap-list? a_1)
                                           (begin
                                             (letrec*
                                              ((for-loop_0
                                                (|#%name|
                                                 for-loop
                                                 (lambda (result_0 lst_0)
                                                   (begin
                                                     (if (not
                                                          (null?
                                                           (unwrap lst_0)))
                                                       (let ((v_0
                                                              (if (pair?
                                                                   (unwrap
                                                                    lst_0))
                                                                (wrap-car
                                                                 lst_0)
                                                                lst_0)))
                                                         (let ((rest_0
                                                                (if (pair?
                                                                     (unwrap
                                                                      lst_0))
                                                                  (wrap-cdr
                                                                   lst_0)
                                                                  null)))
                                                           (let ((v_1 v_0))
                                                             (let ((result_1
                                                                    (let ((result_1
                                                                           (let ((p_1
                                                                                  (unwrap
                                                                                   v_1)))
                                                                             (if (pair?
                                                                                  p_1)
                                                                               (let ((a_2
                                                                                      (cdr
                                                                                       p_1)))
                                                                                 (let ((p_2
                                                                                        (unwrap
                                                                                         a_2)))
                                                                                   (if (pair?
                                                                                        p_2)
                                                                                     (let ((a_3
                                                                                            (cdr
                                                                                             p_2)))
                                                                                       (let ((app_0
                                                                                              (unwrap
                                                                                               '())))
                                                                                         (eq?
                                                                                          app_0
                                                                                          (unwrap
                                                                                           a_3))))
                                                                                     #f)))
                                                                               #f))))
                                                                      (values
                                                                       result_1))))
                                                               (if (if (not
                                                                        (let ((x_0
                                                                               (list
                                                                                v_1)))
                                                                          (not
                                                                           result_1)))
                                                                     #t
                                                                     #f)
                                                                 (for-loop_0
                                                                  result_1
                                                                  rest_0)
                                                                 result_1)))))
                                                       result_0))))))
                                              (for-loop_0 #t a_1)))
                                           #f))
                                     #t
                                     #f)
                                   #f)))
                             #f)
                         (call-with-values
                          (lambda ()
                            (let ((d_0 (cdr (unwrap e_0))))
                              (let ((p_0 (unwrap d_0)))
                                (call-with-values
                                 (lambda ()
                                   (let ((a_0 (car p_0)))
                                     (call-with-values
                                      (lambda ()
                                        (begin
                                          (letrec*
                                           ((for-loop_0
                                             (|#%name|
                                              for-loop
                                              (lambda (ids_0 rhss_0 lst_0)
                                                (begin
                                                  (if (not
                                                       (null? (unwrap lst_0)))
                                                    (let ((v_0
                                                           (if (pair?
                                                                (unwrap lst_0))
                                                             (wrap-car lst_0)
                                                             lst_0)))
                                                      (let ((rest_0
                                                             (if (pair?
                                                                  (unwrap
                                                                   lst_0))
                                                               (wrap-cdr lst_0)
                                                               null)))
                                                        (let ((v_1 v_0))
                                                          (call-with-values
                                                           (lambda ()
                                                             (call-with-values
                                                              (lambda ()
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (let ((p_1
                                                                          (unwrap
                                                                           v_1)))
                                                                     (let ((ids_1
                                                                            (let ((a_1
                                                                                   (car
                                                                                    p_1)))
                                                                              a_1)))
                                                                       (let ((rhss_1
                                                                              (let ((d_1
                                                                                     (cdr
                                                                                      p_1)))
                                                                                (let ((a_1
                                                                                       (car
                                                                                        (unwrap
                                                                                         d_1))))
                                                                                  a_1))))
                                                                         (let ((ids_2
                                                                                ids_1))
                                                                           (values
                                                                            ids_2
                                                                            rhss_1))))))
                                                                 (case-lambda
                                                                  ((ids53_0
                                                                    rhss54_0)
                                                                   (values
                                                                    (cons
                                                                     ids53_0
                                                                     ids_0)
                                                                    (cons
                                                                     rhss54_0
                                                                     rhss_0)))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    2
                                                                    args)))))
                                                              (case-lambda
                                                               ((ids_1 rhss_1)
                                                                (values
                                                                 ids_1
                                                                 rhss_1))
                                                               (args
                                                                (raise-binding-result-arity-error
                                                                 2
                                                                 args)))))
                                                           (case-lambda
                                                            ((ids_1 rhss_1)
                                                             (for-loop_0
                                                              ids_1
                                                              rhss_1
                                                              rest_0))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              2
                                                              args)))))))
                                                    (values ids_0 rhss_0)))))))
                                           (for-loop_0 null null a_0))))
                                      (case-lambda
                                       ((ids_0 rhss_0)
                                        (let ((app_0 (reverse$1 ids_0)))
                                          (values app_0 (reverse$1 rhss_0))))
                                       (args
                                        (raise-binding-result-arity-error
                                         2
                                         args))))))
                                 (case-lambda
                                  ((ids_0 rhss_0)
                                   (let ((body_0 (let ((d_1 (cdr p_0))) d_1)))
                                     (let ((ids_1 ids_0) (rhss_1 rhss_0))
                                       (values ids_1 rhss_1 body_0))))
                                  (args
                                   (raise-binding-result-arity-error
                                    2
                                    args)))))))
                          (case-lambda
                           ((ids_0 rhss_0 body_0)
                            (extract-list-mutated_0
                             body_0
                             (extract-list-mutated_0 rhss_0 mutated_0)))
                           (args (raise-binding-result-arity-error 3 args))))
                         (if (if (eq? 'letrec hd_0)
                               (let ((a_0 (cdr (unwrap e_0))))
                                 (let ((p_0 (unwrap a_0)))
                                   (if (pair? p_0)
                                     (if (let ((a_1 (car p_0)))
                                           (if (wrap-list? a_1)
                                             (begin
                                               (letrec*
                                                ((for-loop_0
                                                  (|#%name|
                                                   for-loop
                                                   (lambda (result_0 lst_0)
                                                     (begin
                                                       (if (not
                                                            (null?
                                                             (unwrap lst_0)))
                                                         (let ((v_0
                                                                (if (pair?
                                                                     (unwrap
                                                                      lst_0))
                                                                  (wrap-car
                                                                   lst_0)
                                                                  lst_0)))
                                                           (let ((rest_0
                                                                  (if (pair?
                                                                       (unwrap
                                                                        lst_0))
                                                                    (wrap-cdr
                                                                     lst_0)
                                                                    null)))
                                                             (let ((v_1 v_0))
                                                               (let ((result_1
                                                                      (let ((result_1
                                                                             (let ((p_1
                                                                                    (unwrap
                                                                                     v_1)))
                                                                               (if (pair?
                                                                                    p_1)
                                                                                 (let ((a_2
                                                                                        (cdr
                                                                                         p_1)))
                                                                                   (let ((p_2
                                                                                          (unwrap
                                                                                           a_2)))
                                                                                     (if (pair?
                                                                                          p_2)
                                                                                       (let ((a_3
                                                                                              (cdr
                                                                                               p_2)))
                                                                                         (let ((app_0
                                                                                                (unwrap
                                                                                                 '())))
                                                                                           (eq?
                                                                                            app_0
                                                                                            (unwrap
                                                                                             a_3))))
                                                                                       #f)))
                                                                                 #f))))
                                                                        (values
                                                                         result_1))))
                                                                 (if (if (not
                                                                          (let ((x_0
                                                                                 (list
                                                                                  v_1)))
                                                                            (not
                                                                             result_1)))
                                                                       #t
                                                                       #f)
                                                                   (for-loop_0
                                                                    result_1
                                                                    rest_0)
                                                                   result_1)))))
                                                         result_0))))))
                                                (for-loop_0 #t a_1)))
                                             #f))
                                       #t
                                       #f)
                                     #f)))
                               #f)
                           (call-with-values
                            (lambda ()
                              (let ((d_0 (cdr (unwrap e_0))))
                                (let ((p_0 (unwrap d_0)))
                                  (call-with-values
                                   (lambda ()
                                     (let ((a_0 (car p_0)))
                                       (call-with-values
                                        (lambda ()
                                          (begin
                                            (letrec*
                                             ((for-loop_0
                                               (|#%name|
                                                for-loop
                                                (lambda (ids_0 rhss_0 lst_0)
                                                  (begin
                                                    (if (not
                                                         (null?
                                                          (unwrap lst_0)))
                                                      (let ((v_0
                                                             (if (pair?
                                                                  (unwrap
                                                                   lst_0))
                                                               (wrap-car lst_0)
                                                               lst_0)))
                                                        (let ((rest_0
                                                               (if (pair?
                                                                    (unwrap
                                                                     lst_0))
                                                                 (wrap-cdr
                                                                  lst_0)
                                                                 null)))
                                                          (let ((v_1 v_0))
                                                            (call-with-values
                                                             (lambda ()
                                                               (call-with-values
                                                                (lambda ()
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (let ((p_1
                                                                            (unwrap
                                                                             v_1)))
                                                                       (let ((ids_1
                                                                              (let ((a_1
                                                                                     (car
                                                                                      p_1)))
                                                                                a_1)))
                                                                         (let ((rhss_1
                                                                                (let ((d_1
                                                                                       (cdr
                                                                                        p_1)))
                                                                                  (let ((a_1
                                                                                         (car
                                                                                          (unwrap
                                                                                           d_1))))
                                                                                    a_1))))
                                                                           (let ((ids_2
                                                                                  ids_1))
                                                                             (values
                                                                              ids_2
                                                                              rhss_1))))))
                                                                   (case-lambda
                                                                    ((ids55_0
                                                                      rhss56_0)
                                                                     (values
                                                                      (cons
                                                                       ids55_0
                                                                       ids_0)
                                                                      (cons
                                                                       rhss56_0
                                                                       rhss_0)))
                                                                    (args
                                                                     (raise-binding-result-arity-error
                                                                      2
                                                                      args)))))
                                                                (case-lambda
                                                                 ((ids_1
                                                                   rhss_1)
                                                                  (values
                                                                   ids_1
                                                                   rhss_1))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   2
                                                                   args)))))
                                                             (case-lambda
                                                              ((ids_1 rhss_1)
                                                               (for-loop_0
                                                                ids_1
                                                                rhss_1
                                                                rest_0))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                2
                                                                args)))))))
                                                      (values
                                                       ids_0
                                                       rhss_0)))))))
                                             (for-loop_0 null null a_0))))
                                        (case-lambda
                                         ((ids_0 rhss_0)
                                          (let ((app_0 (reverse$1 ids_0)))
                                            (values app_0 (reverse$1 rhss_0))))
                                         (args
                                          (raise-binding-result-arity-error
                                           2
                                           args))))))
                                   (case-lambda
                                    ((ids_0 rhss_0)
                                     (let ((body_0
                                            (let ((d_1 (cdr p_0))) d_1)))
                                       (let ((ids_1 ids_0) (rhss_1 rhss_0))
                                         (values ids_1 rhss_1 body_0))))
                                    (args
                                     (raise-binding-result-arity-error
                                      2
                                      args)))))))
                            (case-lambda
                             ((ids_0 rhss_0 body_0)
                              (extract-list-mutated_0
                               body_0
                               (extract-list-mutated_0 rhss_0 mutated_0)))
                             (args (raise-binding-result-arity-error 3 args))))
                           (if (if (eq? 'letrec* hd_0)
                                 (let ((a_0 (cdr (unwrap e_0))))
                                   (let ((p_0 (unwrap a_0)))
                                     (if (pair? p_0)
                                       (if (let ((a_1 (car p_0)))
                                             (if (wrap-list? a_1)
                                               (begin
                                                 (letrec*
                                                  ((for-loop_0
                                                    (|#%name|
                                                     for-loop
                                                     (lambda (result_0 lst_0)
                                                       (begin
                                                         (if (not
                                                              (null?
                                                               (unwrap lst_0)))
                                                           (let ((v_0
                                                                  (if (pair?
                                                                       (unwrap
                                                                        lst_0))
                                                                    (wrap-car
                                                                     lst_0)
                                                                    lst_0)))
                                                             (let ((rest_0
                                                                    (if (pair?
                                                                         (unwrap
                                                                          lst_0))
                                                                      (wrap-cdr
                                                                       lst_0)
                                                                      null)))
                                                               (let ((v_1 v_0))
                                                                 (let ((result_1
                                                                        (let ((result_1
                                                                               (let ((p_1
                                                                                      (unwrap
                                                                                       v_1)))
                                                                                 (if (pair?
                                                                                      p_1)
                                                                                   (let ((a_2
                                                                                          (cdr
                                                                                           p_1)))
                                                                                     (let ((p_2
                                                                                            (unwrap
                                                                                             a_2)))
                                                                                       (if (pair?
                                                                                            p_2)
                                                                                         (let ((a_3
                                                                                                (cdr
                                                                                                 p_2)))
                                                                                           (let ((app_0
                                                                                                  (unwrap
                                                                                                   '())))
                                                                                             (eq?
                                                                                              app_0
                                                                                              (unwrap
                                                                                               a_3))))
                                                                                         #f)))
                                                                                   #f))))
                                                                          (values
                                                                           result_1))))
                                                                   (if (if (not
                                                                            (let ((x_0
                                                                                   (list
                                                                                    v_1)))
                                                                              (not
                                                                               result_1)))
                                                                         #t
                                                                         #f)
                                                                     (for-loop_0
                                                                      result_1
                                                                      rest_0)
                                                                     result_1)))))
                                                           result_0))))))
                                                  (for-loop_0 #t a_1)))
                                               #f))
                                         #t
                                         #f)
                                       #f)))
                                 #f)
                             (call-with-values
                              (lambda ()
                                (let ((d_0 (cdr (unwrap e_0))))
                                  (let ((p_0 (unwrap d_0)))
                                    (call-with-values
                                     (lambda ()
                                       (let ((a_0 (car p_0)))
                                         (call-with-values
                                          (lambda ()
                                            (begin
                                              (letrec*
                                               ((for-loop_0
                                                 (|#%name|
                                                  for-loop
                                                  (lambda (ids_0 rhss_0 lst_0)
                                                    (begin
                                                      (if (not
                                                           (null?
                                                            (unwrap lst_0)))
                                                        (let ((v_0
                                                               (if (pair?
                                                                    (unwrap
                                                                     lst_0))
                                                                 (wrap-car
                                                                  lst_0)
                                                                 lst_0)))
                                                          (let ((rest_0
                                                                 (if (pair?
                                                                      (unwrap
                                                                       lst_0))
                                                                   (wrap-cdr
                                                                    lst_0)
                                                                   null)))
                                                            (let ((v_1 v_0))
                                                              (call-with-values
                                                               (lambda ()
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (let ((p_1
                                                                              (unwrap
                                                                               v_1)))
                                                                         (let ((ids_1
                                                                                (let ((a_1
                                                                                       (car
                                                                                        p_1)))
                                                                                  a_1)))
                                                                           (let ((rhss_1
                                                                                  (let ((d_1
                                                                                         (cdr
                                                                                          p_1)))
                                                                                    (let ((a_1
                                                                                           (car
                                                                                            (unwrap
                                                                                             d_1))))
                                                                                      a_1))))
                                                                             (let ((ids_2
                                                                                    ids_1))
                                                                               (values
                                                                                ids_2
                                                                                rhss_1))))))
                                                                     (case-lambda
                                                                      ((ids57_0
                                                                        rhss58_0)
                                                                       (values
                                                                        (cons
                                                                         ids57_0
                                                                         ids_0)
                                                                        (cons
                                                                         rhss58_0
                                                                         rhss_0)))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args)))))
                                                                  (case-lambda
                                                                   ((ids_1
                                                                     rhss_1)
                                                                    (values
                                                                     ids_1
                                                                     rhss_1))
                                                                   (args
                                                                    (raise-binding-result-arity-error
                                                                     2
                                                                     args)))))
                                                               (case-lambda
                                                                ((ids_1 rhss_1)
                                                                 (for-loop_0
                                                                  ids_1
                                                                  rhss_1
                                                                  rest_0))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))))
                                                        (values
                                                         ids_0
                                                         rhss_0)))))))
                                               (for-loop_0 null null a_0))))
                                          (case-lambda
                                           ((ids_0 rhss_0)
                                            (let ((app_0 (reverse$1 ids_0)))
                                              (values
                                               app_0
                                               (reverse$1 rhss_0))))
                                           (args
                                            (raise-binding-result-arity-error
                                             2
                                             args))))))
                                     (case-lambda
                                      ((ids_0 rhss_0)
                                       (let ((body_0
                                              (let ((d_1 (cdr p_0))) d_1)))
                                         (let ((ids_1 ids_0) (rhss_1 rhss_0))
                                           (values ids_1 rhss_1 body_0))))
                                      (args
                                       (raise-binding-result-arity-error
                                        2
                                        args)))))))
                              (case-lambda
                               ((ids_0 rhss_0 body_0)
                                (extract-list-mutated_0
                                 body_0
                                 (extract-list-mutated_0 rhss_0 mutated_0)))
                               (args
                                (raise-binding-result-arity-error 3 args))))
                             (if (if (eq? 'begin hd_0) #t #f)
                               (let ((vs_0
                                      (let ((d_0 (cdr (unwrap e_0)))) d_0)))
                                 (extract-list-mutated_0 vs_0 mutated_0))
                               (if (if (eq? 'begin0 hd_0)
                                     (let ((a_0 (cdr (unwrap e_0))))
                                       (let ((p_0 (unwrap a_0)))
                                         (if (pair? p_0)
                                           (let ((a_1 (cdr p_0)))
                                             (let ((app_0 (unwrap '())))
                                               (eq? app_0 (unwrap a_1))))
                                           #f)))
                                     #f)
                                 (let ((vs_0
                                        (let ((d_0 (cdr (unwrap e_0))))
                                          (let ((a_0 (car (unwrap d_0))))
                                            a_0))))
                                   (extract-list-mutated_0 vs_0 mutated_0))
                                 (if (if (eq? '$value hd_0)
                                       (let ((a_0 (cdr (unwrap e_0))))
                                         (let ((p_0 (unwrap a_0)))
                                           (if (pair? p_0)
                                             (let ((a_1 (cdr p_0)))
                                               (let ((app_0 (unwrap '())))
                                                 (eq? app_0 (unwrap a_1))))
                                             #f)))
                                       #f)
                                   (let ((e_1
                                          (let ((d_0 (cdr (unwrap e_0))))
                                            (let ((a_0 (car (unwrap d_0))))
                                              a_0))))
                                     (extract-expr-mutated_0 e_1 mutated_0))
                                   (if (if (eq? 'if hd_0)
                                         (let ((a_0 (cdr (unwrap e_0))))
                                           (let ((p_0 (unwrap a_0)))
                                             (if (pair? p_0)
                                               (let ((a_1 (cdr p_0)))
                                                 (let ((p_1 (unwrap a_1)))
                                                   (if (pair? p_1)
                                                     (let ((a_2 (cdr p_1)))
                                                       (let ((p_2
                                                              (unwrap a_2)))
                                                         (if (pair? p_2)
                                                           (let ((a_3
                                                                  (cdr p_2)))
                                                             (let ((app_0
                                                                    (unwrap
                                                                     '())))
                                                               (eq?
                                                                app_0
                                                                (unwrap a_3))))
                                                           #f)))
                                                     #f)))
                                               #f)))
                                         #f)
                                     (call-with-values
                                      (lambda ()
                                        (let ((d_0 (cdr (unwrap e_0))))
                                          (let ((p_0 (unwrap d_0)))
                                            (let ((tst_0
                                                   (let ((a_0 (car p_0)))
                                                     a_0)))
                                              (call-with-values
                                               (lambda ()
                                                 (let ((d_1 (cdr p_0)))
                                                   (let ((p_1 (unwrap d_1)))
                                                     (let ((thn_0
                                                            (let ((a_0
                                                                   (car p_1)))
                                                              a_0)))
                                                       (let ((els_0
                                                              (let ((d_2
                                                                     (cdr
                                                                      p_1)))
                                                                (let ((a_0
                                                                       (car
                                                                        (unwrap
                                                                         d_2))))
                                                                  a_0))))
                                                         (let ((thn_1 thn_0))
                                                           (values
                                                            thn_1
                                                            els_0)))))))
                                               (case-lambda
                                                ((thn_0 els_0)
                                                 (let ((tst_1 tst_0))
                                                   (values tst_1 thn_0 els_0)))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  2
                                                  args))))))))
                                      (case-lambda
                                       ((tst_0 thn_0 els_0)
                                        (let ((tst-mutated_0
                                               (extract-expr-mutated_0
                                                tst_0
                                                mutated_0)))
                                          (let ((thn-mutated_0
                                                 (extract-expr-mutated_0
                                                  thn_0
                                                  tst-mutated_0)))
                                            (extract-expr-mutated_0
                                             els_0
                                             thn-mutated_0))))
                                       (args
                                        (raise-binding-result-arity-error
                                         3
                                         args))))
                                     (if (if (eq?
                                              'with-continuation-mark*
                                              hd_0)
                                           (let ((a_0 (cdr (unwrap e_0))))
                                             (let ((p_0 (unwrap a_0)))
                                               (if (pair? p_0)
                                                 (let ((a_1 (cdr p_0)))
                                                   (let ((p_1 (unwrap a_1)))
                                                     (if (pair? p_1)
                                                       (let ((a_2 (cdr p_1)))
                                                         (let ((p_2
                                                                (unwrap a_2)))
                                                           (if (pair? p_2)
                                                             (let ((a_3
                                                                    (cdr p_2)))
                                                               (let ((p_3
                                                                      (unwrap
                                                                       a_3)))
                                                                 (if (pair?
                                                                      p_3)
                                                                   (let ((a_4
                                                                          (cdr
                                                                           p_3)))
                                                                     (let ((app_0
                                                                            (unwrap
                                                                             '())))
                                                                       (eq?
                                                                        app_0
                                                                        (unwrap
                                                                         a_4))))
                                                                   #f)))
                                                             #f)))
                                                       #f)))
                                                 #f)))
                                           #f)
                                       (call-with-values
                                        (lambda ()
                                          (let ((d_0 (cdr (unwrap e_0))))
                                            (let ((p_0 (unwrap d_0)))
                                              (let ((mode_0
                                                     (let ((a_0 (car p_0)))
                                                       a_0)))
                                                (call-with-values
                                                 (lambda ()
                                                   (let ((d_1 (cdr p_0)))
                                                     (let ((p_1 (unwrap d_1)))
                                                       (let ((key_0
                                                              (let ((a_0
                                                                     (car
                                                                      p_1)))
                                                                a_0)))
                                                         (call-with-values
                                                          (lambda ()
                                                            (let ((d_2
                                                                   (cdr p_1)))
                                                              (let ((p_2
                                                                     (unwrap
                                                                      d_2)))
                                                                (let ((val_0
                                                                       (let ((a_0
                                                                              (car
                                                                               p_2)))
                                                                         a_0)))
                                                                  (let ((body_0
                                                                         (let ((d_3
                                                                                (cdr
                                                                                 p_2)))
                                                                           (let ((a_0
                                                                                  (car
                                                                                   (unwrap
                                                                                    d_3))))
                                                                             a_0))))
                                                                    (let ((val_1
                                                                           val_0))
                                                                      (values
                                                                       val_1
                                                                       body_0)))))))
                                                          (case-lambda
                                                           ((val_0 body_0)
                                                            (let ((key_1
                                                                   key_0))
                                                              (values
                                                               key_1
                                                               val_0
                                                               body_0)))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             2
                                                             args))))))))
                                                 (case-lambda
                                                  ((key_0 val_0 body_0)
                                                   (let ((mode_1 mode_0))
                                                     (values
                                                      mode_1
                                                      key_0
                                                      val_0
                                                      body_0)))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    3
                                                    args))))))))
                                        (case-lambda
                                         ((mode_0 key_0 val_0 body_0)
                                          (let ((key-mutated_0
                                                 (extract-expr-mutated_0
                                                  key_0
                                                  mutated_0)))
                                            (let ((val-mutated_0
                                                   (extract-expr-mutated_0
                                                    val_0
                                                    key-mutated_0)))
                                              (extract-expr-mutated_0
                                               body_0
                                               val-mutated_0))))
                                         (args
                                          (raise-binding-result-arity-error
                                           4
                                           args))))
                                       (if (if (eq? 'quote hd_0)
                                             (let ((a_0 (cdr (unwrap e_0))))
                                               (let ((p_0 (unwrap a_0)))
                                                 (if (pair? p_0)
                                                   (let ((a_1 (cdr p_0)))
                                                     (let ((app_0
                                                            (unwrap '())))
                                                       (eq?
                                                        app_0
                                                        (unwrap a_1))))
                                                   #f)))
                                             #f)
                                         (let ((v_0
                                                (let ((d_0 (cdr (unwrap e_0))))
                                                  (let ((a_0
                                                         (car (unwrap d_0))))
                                                    a_0))))
                                           mutated_0)
                                         (if (if (eq? 'set! hd_0)
                                               (let ((a_0 (cdr (unwrap e_0))))
                                                 (let ((p_0 (unwrap a_0)))
                                                   (if (pair? p_0)
                                                     (let ((a_1 (cdr p_0)))
                                                       (let ((p_1
                                                              (unwrap a_1)))
                                                         (if (pair? p_1)
                                                           (let ((a_2
                                                                  (cdr p_1)))
                                                             (let ((app_0
                                                                    (unwrap
                                                                     '())))
                                                               (eq?
                                                                app_0
                                                                (unwrap a_2))))
                                                           #f)))
                                                     #f)))
                                               #f)
                                           (call-with-values
                                            (lambda ()
                                              (let ((d_0 (cdr (unwrap e_0))))
                                                (let ((p_0 (unwrap d_0)))
                                                  (let ((id_0
                                                         (let ((a_0 (car p_0)))
                                                           a_0)))
                                                    (let ((rhs_0
                                                           (let ((d_1
                                                                  (cdr p_0)))
                                                             (let ((a_0
                                                                    (car
                                                                     (unwrap
                                                                      d_1))))
                                                               a_0))))
                                                      (let ((id_1 id_0))
                                                        (values
                                                         id_1
                                                         rhs_0)))))))
                                            (case-lambda
                                             ((id_0 rhs_0)
                                              (let ((new-mutated_0
                                                     (hash-set
                                                      mutated_0
                                                      (unwrap id_0)
                                                      #t)))
                                                (extract-expr-mutated_0
                                                 rhs_0
                                                 new-mutated_0)))
                                             (args
                                              (raise-binding-result-arity-error
                                               2
                                               args))))
                                           (if (if (eq? 'define hd_0)
                                                 (let ((a_0
                                                        (cdr (unwrap e_0))))
                                                   (let ((p_0 (unwrap a_0)))
                                                     (if (pair? p_0)
                                                       (let ((a_1 (cdr p_0)))
                                                         (let ((p_1
                                                                (unwrap a_1)))
                                                           (if (pair? p_1)
                                                             (let ((a_2
                                                                    (cdr p_1)))
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_2))))
                                                             #f)))
                                                       #f)))
                                                 #f)
                                             (call-with-values
                                              (lambda ()
                                                (let ((d_0 (cdr (unwrap e_0))))
                                                  (let ((p_0 (unwrap d_0)))
                                                    (let ((id_0
                                                           (let ((a_0
                                                                  (car p_0)))
                                                             a_0)))
                                                      (let ((rhs_0
                                                             (let ((d_1
                                                                    (cdr p_0)))
                                                               (let ((a_0
                                                                      (car
                                                                       (unwrap
                                                                        d_1))))
                                                                 a_0))))
                                                        (let ((id_1 id_0))
                                                          (values
                                                           id_1
                                                           rhs_0)))))))
                                              (case-lambda
                                               ((id_0 rhs_0)
                                                (extract-expr-mutated_0
                                                 rhs_0
                                                 mutated_0))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args))))
                                             (if (if (eq? 'define-values hd_0)
                                                   (let ((a_0
                                                          (cdr (unwrap e_0))))
                                                     (let ((p_0 (unwrap a_0)))
                                                       (if (pair? p_0)
                                                         (let ((a_1 (cdr p_0)))
                                                           (let ((p_1
                                                                  (unwrap
                                                                   a_1)))
                                                             (if (pair? p_1)
                                                               (let ((a_2
                                                                      (cdr
                                                                       p_1)))
                                                                 (let ((app_0
                                                                        (unwrap
                                                                         '())))
                                                                   (eq?
                                                                    app_0
                                                                    (unwrap
                                                                     a_2))))
                                                               #f)))
                                                         #f)))
                                                   #f)
                                               (call-with-values
                                                (lambda ()
                                                  (let ((d_0
                                                         (cdr (unwrap e_0))))
                                                    (let ((p_0 (unwrap d_0)))
                                                      (let ((ids_0
                                                             (let ((a_0
                                                                    (car p_0)))
                                                               a_0)))
                                                        (let ((rhs_0
                                                               (let ((d_1
                                                                      (cdr
                                                                       p_0)))
                                                                 (let ((a_0
                                                                        (car
                                                                         (unwrap
                                                                          d_1))))
                                                                   a_0))))
                                                          (let ((ids_1 ids_0))
                                                            (values
                                                             ids_1
                                                             rhs_0)))))))
                                                (case-lambda
                                                 ((ids_0 rhs_0)
                                                  (extract-expr-mutated_0
                                                   rhs_0
                                                   mutated_0))
                                                 (args
                                                  (raise-binding-result-arity-error
                                                   2
                                                   args))))
                                               (if (if (eq?
                                                        'variable-set!
                                                        hd_0)
                                                     (let ((a_0
                                                            (cdr
                                                             (unwrap e_0))))
                                                       (let ((p_0
                                                              (unwrap a_0)))
                                                         (if (pair? p_0)
                                                           (let ((a_1
                                                                  (cdr p_0)))
                                                             (let ((p_1
                                                                    (unwrap
                                                                     a_1)))
                                                               (if (pair? p_1)
                                                                 (let ((a_2
                                                                        (cdr
                                                                         p_1)))
                                                                   (let ((app_0
                                                                          (unwrap
                                                                           '())))
                                                                     (eq?
                                                                      app_0
                                                                      (unwrap
                                                                       a_2))))
                                                                 #f)))
                                                           #f)))
                                                     #f)
                                                 (call-with-values
                                                  (lambda ()
                                                    (let ((d_0
                                                           (cdr (unwrap e_0))))
                                                      (let ((p_0 (unwrap d_0)))
                                                        (let ((dest-id_0
                                                               (let ((a_0
                                                                      (car
                                                                       p_0)))
                                                                 a_0)))
                                                          (let ((e_1
                                                                 (let ((d_1
                                                                        (cdr
                                                                         p_0)))
                                                                   (let ((a_0
                                                                          (car
                                                                           (unwrap
                                                                            d_1))))
                                                                     a_0))))
                                                            (let ((dest-id_1
                                                                   dest-id_0))
                                                              (values
                                                               dest-id_1
                                                               e_1)))))))
                                                  (case-lambda
                                                   ((dest-id_0 e_1)
                                                    (extract-expr-mutated_0
                                                     e_1
                                                     mutated_0))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args))))
                                                 (if (if (eq?
                                                          'variable-set!/define
                                                          hd_0)
                                                       (let ((a_0
                                                              (cdr
                                                               (unwrap e_0))))
                                                         (let ((p_0
                                                                (unwrap a_0)))
                                                           (if (pair? p_0)
                                                             (let ((a_1
                                                                    (cdr p_0)))
                                                               (let ((p_1
                                                                      (unwrap
                                                                       a_1)))
                                                                 (if (pair?
                                                                      p_1)
                                                                   (let ((a_2
                                                                          (cdr
                                                                           p_1)))
                                                                     (let ((p_2
                                                                            (unwrap
                                                                             a_2)))
                                                                       (if (pair?
                                                                            p_2)
                                                                         (if (let ((a_3
                                                                                    (car
                                                                                     p_2)))
                                                                               (let ((p_3
                                                                                      (unwrap
                                                                                       a_3)))
                                                                                 (if (pair?
                                                                                      p_3)
                                                                                   (if (let ((a_4
                                                                                              (car
                                                                                               p_3)))
                                                                                         (let ((app_0
                                                                                                (unwrap
                                                                                                 'quote)))
                                                                                           (eq?
                                                                                            app_0
                                                                                            (unwrap
                                                                                             a_4))))
                                                                                     (let ((a_4
                                                                                            (cdr
                                                                                             p_3)))
                                                                                       (let ((p_4
                                                                                              (unwrap
                                                                                               a_4)))
                                                                                         (if (pair?
                                                                                              p_4)
                                                                                           (let ((a_5
                                                                                                  (cdr
                                                                                                   p_4)))
                                                                                             (let ((app_0
                                                                                                    (unwrap
                                                                                                     '())))
                                                                                               (eq?
                                                                                                app_0
                                                                                                (unwrap
                                                                                                 a_5))))
                                                                                           #f)))
                                                                                     #f)
                                                                                   #f)))
                                                                           (let ((a_3
                                                                                  (cdr
                                                                                   p_2)))
                                                                             (let ((app_0
                                                                                    (unwrap
                                                                                     '())))
                                                                               (eq?
                                                                                app_0
                                                                                (unwrap
                                                                                 a_3))))
                                                                           #f)
                                                                         #f)))
                                                                   #f)))
                                                             #f)))
                                                       #f)
                                                   (call-with-values
                                                    (lambda ()
                                                      (let ((d_0
                                                             (cdr
                                                              (unwrap e_0))))
                                                        (let ((p_0
                                                               (unwrap d_0)))
                                                          (let ((dest-id_0
                                                                 (let ((a_0
                                                                        (car
                                                                         p_0)))
                                                                   a_0)))
                                                            (call-with-values
                                                             (lambda ()
                                                               (let ((d_1
                                                                      (cdr
                                                                       p_0)))
                                                                 (let ((p_1
                                                                        (unwrap
                                                                         d_1)))
                                                                   (let ((e_1
                                                                          (let ((a_0
                                                                                 (car
                                                                                  p_1)))
                                                                            a_0)))
                                                                     (let ((constance_0
                                                                            (let ((d_2
                                                                                   (cdr
                                                                                    p_1)))
                                                                              (let ((a_0
                                                                                     (car
                                                                                      (unwrap
                                                                                       d_2))))
                                                                                (let ((d_3
                                                                                       (cdr
                                                                                        (unwrap
                                                                                         a_0))))
                                                                                  (let ((a_1
                                                                                         (car
                                                                                          (unwrap
                                                                                           d_3))))
                                                                                    a_1))))))
                                                                       (let ((e_2
                                                                              e_1))
                                                                         (values
                                                                          e_2
                                                                          constance_0)))))))
                                                             (case-lambda
                                                              ((e_1
                                                                constance_0)
                                                               (let ((dest-id_1
                                                                      dest-id_0))
                                                                 (values
                                                                  dest-id_1
                                                                  e_1
                                                                  constance_0)))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                2
                                                                args))))))))
                                                    (case-lambda
                                                     ((dest-id_0
                                                       e_1
                                                       constance_0)
                                                      (extract-expr-mutated_0
                                                       e_1
                                                       mutated_0))
                                                     (args
                                                      (raise-binding-result-arity-error
                                                       3
                                                       args))))
                                                   (if (if (eq?
                                                            'variable-ref
                                                            hd_0)
                                                         (let ((a_0
                                                                (cdr
                                                                 (unwrap
                                                                  e_0))))
                                                           (let ((p_0
                                                                  (unwrap
                                                                   a_0)))
                                                             (if (pair? p_0)
                                                               (let ((a_1
                                                                      (cdr
                                                                       p_0)))
                                                                 (let ((app_0
                                                                        (unwrap
                                                                         '())))
                                                                   (eq?
                                                                    app_0
                                                                    (unwrap
                                                                     a_1))))
                                                               #f)))
                                                         #f)
                                                     (let ((id_0
                                                            (let ((d_0
                                                                   (cdr
                                                                    (unwrap
                                                                     e_0))))
                                                              (let ((a_0
                                                                     (car
                                                                      (unwrap
                                                                       d_0))))
                                                                a_0))))
                                                       mutated_0)
                                                     (if (if (eq?
                                                              'variable-ref/no-check
                                                              hd_0)
                                                           (let ((a_0
                                                                  (cdr
                                                                   (unwrap
                                                                    e_0))))
                                                             (let ((p_0
                                                                    (unwrap
                                                                     a_0)))
                                                               (if (pair? p_0)
                                                                 (let ((a_1
                                                                        (cdr
                                                                         p_0)))
                                                                   (let ((app_0
                                                                          (unwrap
                                                                           '())))
                                                                     (eq?
                                                                      app_0
                                                                      (unwrap
                                                                       a_1))))
                                                                 #f)))
                                                           #f)
                                                       (let ((id_0
                                                              (let ((d_0
                                                                     (cdr
                                                                      (unwrap
                                                                       e_0))))
                                                                (let ((a_0
                                                                       (car
                                                                        (unwrap
                                                                         d_0))))
                                                                  a_0))))
                                                         mutated_0)
                                                       (if (if (eq?
                                                                '|#%app|
                                                                hd_0)
                                                             (let ((a_0
                                                                    (cdr
                                                                     (unwrap
                                                                      e_0))))
                                                               (wrap-list?
                                                                a_0))
                                                             #f)
                                                         (let ((es_0
                                                                (let ((d_0
                                                                       (cdr
                                                                        (unwrap
                                                                         e_0))))
                                                                  (unwrap-list
                                                                   d_0))))
                                                           (extract-list-mutated_0
                                                            es_0
                                                            mutated_0))
                                                         (if (wrap-list? e_0)
                                                           (let ((es_0
                                                                  (unwrap-list
                                                                   e_0)))
                                                             (extract-list-mutated_0
                                                              es_0
                                                              mutated_0))
                                                           mutated_0)))))))))))))))))))))))))
           (extract-list-mutated_0
            (|#%name|
             extract-list-mutated
             (lambda (body_0 mutated_0)
               (begin
                 (letrec*
                  ((loop_4
                    (|#%name|
                     loop
                     (lambda (body_1 mutated_1)
                       (begin
                         (if (null? body_1)
                           mutated_1
                           (let ((app_0 (wrap-cdr body_1)))
                             (loop_4
                              app_0
                              (extract-expr-mutated_0
                               (wrap-car body_1)
                               mutated_1)))))))))
                  (loop_4 body_0 mutated_0))))))
           (extract-procedure-wrap-data_0
            (|#%name|
             extract-procedure-wrap-data
             (lambda (e_0)
               (begin
                 (let ((encoded-name_0 (wrap-property e_0 'inferred-name)))
                   (let ((name_0
                          (if (eq? encoded-name_0 '|[|)
                            #f
                            (if (symbol? encoded-name_0)
                              (let ((s_0
                                     (symbol->immutable-string
                                      encoded-name_0)))
                                (if (fx= 0 (string-length s_0))
                                  encoded-name_0
                                  (let ((ch_0 (string-ref s_0 0)))
                                    (if (let ((or-part_0 (char=? '#\x5b ch_0)))
                                          (if or-part_0
                                            or-part_0
                                            (char=? '#\x5d ch_0)))
                                      (string->symbol
                                       (substring s_0 1 (string-length s_0)))
                                      encoded-name_0))))
                              encoded-name_0))))
                     (if (wrap-property e_0 'method-arity-error)
                       (box name_0)
                       name_0)))))))
           (loop_0
            (|#%name|
             loop
             (lambda (body-vars-index_0 e_0 env_0 num-body-vars_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap e_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'define hd_0)
                         (let ((a_0 (cdr (unwrap e_0))))
                           (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
                         #f)
                     (let ((id_0
                            (let ((d_0 (cdr (unwrap e_0))))
                              (let ((a_0 (car (unwrap d_0)))) a_0))))
                       (let ((app_0
                              (let ((app_0 (unwrap id_0)))
                                (hash-set
                                 env_0
                                 app_0
                                 (boxed2.1
                                  (+ body-vars-index_0 num-body-vars_0))))))
                         (values app_0 (add1 num-body-vars_0))))
                     (if (if (eq? 'define-values hd_0)
                           (let ((a_0 (cdr (unwrap e_0))))
                             (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
                           #f)
                       (let ((ids_0
                              (let ((d_0 (cdr (unwrap e_0))))
                                (let ((a_0 (car (unwrap d_0)))) a_0))))
                         (begin
                           (letrec*
                            ((for-loop_0
                              (|#%name|
                               for-loop
                               (lambda (env_1 num-body-vars_1 lst_0)
                                 (begin
                                   (if (not (null? (unwrap lst_0)))
                                     (let ((id_0
                                            (if (pair? (unwrap lst_0))
                                              (wrap-car lst_0)
                                              lst_0)))
                                       (let ((rest_0
                                              (if (pair? (unwrap lst_0))
                                                (wrap-cdr lst_0)
                                                null)))
                                         (let ((id_1 id_0))
                                           (call-with-values
                                            (lambda ()
                                              (call-with-values
                                               (lambda ()
                                                 (let ((app_0
                                                        (let ((app_0
                                                               (unwrap id_1)))
                                                          (hash-set
                                                           env_1
                                                           app_0
                                                           (boxed2.1
                                                            (+
                                                             body-vars-index_0
                                                             num-body-vars_1))))))
                                                   (values
                                                    app_0
                                                    (add1 num-body-vars_1))))
                                               (case-lambda
                                                ((env_2 num-body-vars_2)
                                                 (values
                                                  env_2
                                                  num-body-vars_2))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  2
                                                  args)))))
                                            (case-lambda
                                             ((env_2 num-body-vars_2)
                                              (for-loop_0
                                               env_2
                                               num-body-vars_2
                                               rest_0))
                                             (args
                                              (raise-binding-result-arity-error
                                               2
                                               args)))))))
                                     (values env_1 num-body-vars_1)))))))
                            (for-loop_0 env_0 num-body-vars_0 ids_0))))
                       (if (if (eq? 'begin hd_0) #t #f)
                         (let ((body_0 (let ((d_0 (cdr (unwrap e_0)))) d_0)))
                           (begin
                             (letrec*
                              ((for-loop_0
                                (|#%name|
                                 for-loop
                                 (lambda (env_1 num-body-vars_1 lst_0)
                                   (begin
                                     (if (not (null? (unwrap lst_0)))
                                       (let ((e_1
                                              (if (pair? (unwrap lst_0))
                                                (wrap-car lst_0)
                                                lst_0)))
                                         (let ((rest_0
                                                (if (pair? (unwrap lst_0))
                                                  (wrap-cdr lst_0)
                                                  null)))
                                           (let ((e_2 e_1))
                                             (call-with-values
                                              (lambda ()
                                                (call-with-values
                                                 (lambda ()
                                                   (loop_0
                                                    body-vars-index_0
                                                    e_2
                                                    env_1
                                                    num-body-vars_1))
                                                 (case-lambda
                                                  ((env_2 num-body-vars_2)
                                                   (values
                                                    env_2
                                                    num-body-vars_2))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    2
                                                    args)))))
                                              (case-lambda
                                               ((env_2 num-body-vars_2)
                                                (for-loop_0
                                                 env_2
                                                 num-body-vars_2
                                                 rest_0))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args)))))))
                                       (values env_1 num-body-vars_1)))))))
                              (for-loop_0 env_0 num-body-vars_0 body_0))))
                         (values env_0 num-body-vars_0)))))))))
           (loop_1
            (|#%name|
             loop
             (lambda (env_0
                      mutated_0
                      serializable?_0
                      stack-depth_0
                      stk-i_0
                      body_0)
               (begin
                 (if (let ((app_0 (unwrap '()))) (eq? app_0 (unwrap body_0)))
                   '()
                   (if (let ((p_0 (unwrap body_0)))
                         (if (pair? p_0)
                           (if (let ((a_0 (car p_0)))
                                 (let ((p_1 (unwrap a_0)))
                                   (if (pair? p_1)
                                     (if (let ((a_1 (car p_1)))
                                           (let ((app_0 (unwrap 'begin)))
                                             (eq? app_0 (unwrap a_1))))
                                       (let ((a_1 (cdr p_1))) (wrap-list? a_1))
                                       #f)
                                     #f)))
                             #t
                             #f)
                           #f))
                     (call-with-values
                      (lambda ()
                        (let ((p_0 (unwrap body_0)))
                          (let ((subs_0
                                 (let ((a_0 (car p_0)))
                                   (let ((d_0 (cdr (unwrap a_0))))
                                     (unwrap-list d_0)))))
                            (let ((rest_0 (let ((d_0 (cdr p_0))) d_0)))
                              (let ((subs_1 subs_0))
                                (values subs_1 rest_0))))))
                      (case-lambda
                       ((subs_0 rest_0)
                        (loop_1
                         env_0
                         mutated_0
                         serializable?_0
                         stack-depth_0
                         stk-i_0
                         (append subs_0 rest_0)))
                       (args (raise-binding-result-arity-error 2 args))))
                     (if (let ((p_0 (unwrap body_0))) (if (pair? p_0) #t #f))
                       (call-with-values
                        (lambda ()
                          (let ((p_0 (unwrap body_0)))
                            (let ((e_0 (let ((a_0 (car p_0))) a_0)))
                              (let ((rest_0 (let ((d_0 (cdr p_0))) d_0)))
                                (let ((e_1 e_0)) (values e_1 rest_0))))))
                        (case-lambda
                         ((e_0 rest_0)
                          (let ((new-rest_0
                                 (loop_1
                                  env_0
                                  mutated_0
                                  serializable?_0
                                  stack-depth_0
                                  stk-i_0
                                  rest_0)))
                            (cons
                             (compile-expr_0
                              serializable?_0
                              e_0
                              env_0
                              stack-depth_0
                              stk-i_0
                              #t
                              mutated_0)
                             new-rest_0)))
                         (args (raise-binding-result-arity-error 2 args))))
                       (error 'match "failed ~e" body_0))))))))
           (loop_2
            (|#%name|
             loop
             (lambda (env_0
                      mutated_0
                      serializable?_0
                      stack-depth_0
                      stk-i_0
                      tail?_0
                      body_0)
               (begin
                 (if (null? body_0)
                   '()
                   (let ((rest-body_0 (wrap-cdr body_0)))
                     (let ((new-rest_0
                            (loop_2
                             env_0
                             mutated_0
                             serializable?_0
                             stack-depth_0
                             stk-i_0
                             tail?_0
                             rest-body_0)))
                       (cons
                        (let ((app_0 (wrap-car body_0)))
                          (compile-expr_0
                           serializable?_0
                           app_0
                           env_0
                           stack-depth_0
                           stk-i_0
                           (if tail?_0 (null? rest-body_0) #f)
                           mutated_0))
                        new-rest_0))))))))
           (loop_3
            (|#%name|
             loop
             (lambda (e_0 len_0 i_0)
               (begin
                 (if (= i_0 len_0)
                   (begins->list_0 (unsafe-vector*-ref e_0 i_0))
                   (let ((app_0 (unsafe-vector*-ref e_0 i_0)))
                     (cons app_0 (loop_3 e_0 len_0 (add1 i_0)))))))))
           (make-env_0
            (|#%name|
             make-env
             (lambda (count_0 env_0 ids_0 stack-depth_0 boxed_0)
               (begin
                 (begin
                   (letrec*
                    ((for-loop_0
                      (|#%name|
                       for-loop
                       (lambda (env_1 lst_0 pos_0)
                         (begin
                           (if (if (pair? lst_0) #t #f)
                             (let ((id_0 (unsafe-car lst_0)))
                               (let ((rest_0 (unsafe-cdr lst_0)))
                                 (let ((env_2
                                        (let ((env_2
                                               (let ((app_0 (unwrap id_0)))
                                                 (hash-set
                                                  env_1
                                                  app_0
                                                  (|#%app|
                                                   boxed_0
                                                   (+
                                                    (- count_0 pos_0 1)
                                                    stack-depth_0))))))
                                          (values env_2))))
                                   (for-loop_0 env_2 rest_0 (+ pos_0 1)))))
                             env_1))))))
                    (for-loop_0 env_0 ids_0 0)))))))
           (start_0
            (|#%name|
             start
             (lambda (serializable?_0 linklet-e_0)
               (begin
                 (let ((hd_0
                        (let ((p_0 (unwrap linklet-e_0)))
                          (if (pair? p_0) (unwrap (car p_0)) #f))))
                   (if (if (eq? 'lambda hd_0) #t #f)
                     (call-with-values
                      (lambda ()
                        (compile-linklet-body_0
                         serializable?_0
                         linklet-e_0
                         hash2610
                         0))
                      (case-lambda
                       ((compiled-body_0 num-body-vars_0)
                        (vector #f num-body-vars_0 compiled-body_0))
                       (args (raise-binding-result-arity-error 2 args))))
                     (if (if (eq? 'let* hd_0)
                           (let ((a_0 (cdr (unwrap linklet-e_0))))
                             (let ((p_0 (unwrap a_0)))
                               (if (pair? p_0)
                                 (let ((a_1 (cdr p_0)))
                                   (let ((p_1 (unwrap a_1)))
                                     (if (pair? p_1)
                                       (let ((a_2 (cdr p_1)))
                                         (let ((app_0 (unwrap '())))
                                           (eq? app_0 (unwrap a_2))))
                                       #f)))
                                 #f)))
                           #f)
                       (call-with-values
                        (lambda ()
                          (let ((d_0 (cdr (unwrap linklet-e_0))))
                            (let ((p_0 (unwrap d_0)))
                              (let ((bindings_0 (let ((a_0 (car p_0))) a_0)))
                                (let ((body_0
                                       (let ((d_1 (cdr p_0)))
                                         (let ((a_0 (car (unwrap d_1))))
                                           a_0))))
                                  (let ((bindings_1 bindings_0))
                                    (values bindings_1 body_0)))))))
                        (case-lambda
                         ((bindings_0 body_0)
                          (let ((bindings-stk-i_0
                                 (make-stack-info.1 #f hash2610 #f)))
                            (letrec*
                             ((loop_4
                               (|#%name|
                                loop
                                (lambda (bindings_1 elem_0 env_0 accum_0)
                                  (begin
                                    (if (null? bindings_1)
                                      (call-with-values
                                       (lambda ()
                                         (compile-linklet-body_0
                                          serializable?_0
                                          body_0
                                          env_0
                                          1))
                                       (case-lambda
                                        ((compiled-body_0 num-body-vars_0)
                                         (vector
                                          (list->vector (reverse$1 accum_0))
                                          num-body-vars_0
                                          compiled-body_0))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))
                                      (let ((binding_0 (car bindings_1)))
                                        (let ((app_0 (cdr bindings_1)))
                                          (let ((app_1 (fx+ elem_0 1)))
                                            (let ((app_2
                                                   (hash-set
                                                    env_0
                                                    (car binding_0)
                                                    (indirect1.1 0 elem_0))))
                                              (loop_4
                                               app_0
                                               app_1
                                               app_2
                                               (let ((rhs_0 (cadr binding_0)))
                                                 (cons
                                                  (if (let ((or-part_0
                                                             (path? rhs_0)))
                                                        (if or-part_0
                                                          or-part_0
                                                          (let ((or-part_1
                                                                 (path-for-srcloc?
                                                                  rhs_0)))
                                                            (if or-part_1
                                                              or-part_1
                                                              (to-fasl?
                                                               rhs_0)))))
                                                    '|#%path|
                                                    (compile-expr_0
                                                     serializable?_0
                                                     rhs_0
                                                     env_0
                                                     1
                                                     bindings-stk-i_0
                                                     #t
                                                     hash2610))
                                                  accum_0)))))))))))))
                             (loop_4 bindings_0 0 hash2610 '()))))
                         (args (raise-binding-result-arity-error 2 args))))
                       (error 'match "failed ~e" linklet-e_0)))))))))
    (lambda (linklet-e_0 serializable?_0)
      (with-continuation-mark*
       authentic
       parameterization-key
       (extend-parameterization
        (continuation-mark-set-first #f parameterization-key)
        gensym-counter
        (box 0))
       (start_0 serializable?_0 linklet-e_0)))))
(define interpret-linklet
  (lambda (b_0 paths_0)
    (let ((consts_0 (unsafe-vector*-ref b_0 0)))
      (let ((num-body-vars_0 (unsafe-vector*-ref b_0 1)))
        (let ((b_1 (unsafe-vector*-ref b_0 2)))
          (let ((num-body-vars_1 num-body-vars_0) (consts_1 consts_0))
            (let ((consts_2
                   (if consts_1
                     (let ((vec_0
                            (make-vector (unsafe-vector*-length consts_1))))
                       (let ((stack_0 (stack-set #f 0 vec_0)))
                         (begin
                           (call-with-values
                            (lambda ()
                              (begin
                                (check-vector consts_1)
                                (values
                                 consts_1
                                 (unsafe-vector-length consts_1))))
                            (case-lambda
                             ((vec_1 len_0)
                              (let ((start_0 0))
                                (let ((vec_2 vec_1) (len_1 len_0))
                                  (begin
                                    #f
                                    (void)
                                    (letrec*
                                     ((for-loop_0
                                       (|#%name|
                                        for-loop
                                        (lambda (paths_1 pos_0 pos_1)
                                          (begin
                                            (if (if (unsafe-fx< pos_0 len_1)
                                                  #t
                                                  #f)
                                              (let ((b_2
                                                     (unsafe-vector-ref
                                                      vec_2
                                                      pos_0)))
                                                (let ((paths_2
                                                       (let ((paths_2
                                                              (if (eq?
                                                                   b_2
                                                                   '|#%path|)
                                                                (begin
                                                                  (vector-set!
                                                                   vec_0
                                                                   pos_1
                                                                   (car
                                                                    paths_1))
                                                                  (cdr
                                                                   paths_1))
                                                                (begin
                                                                  (vector-set!
                                                                   vec_0
                                                                   pos_1
                                                                   (interpret-expr
                                                                    b_2
                                                                    stack_0))
                                                                  paths_1))))
                                                         (values paths_2))))
                                                  (for-loop_0
                                                   paths_2
                                                   (unsafe-fx+ 1 pos_0)
                                                   (+ pos_1 1))))
                                              paths_1))))))
                                     (for-loop_0 paths_0 0 start_0))))))
                             (args (raise-binding-result-arity-error 2 args))))
                           vec_0)))
                     #f)))
              (lambda args_0
                (let ((start-stack_0
                       (if consts_2 (stack-set #f 0 consts_2) #f)))
                  (let ((args-stack_0
                         (let ((start_0 (if consts_2 1 0)))
                           (begin
                             (letrec*
                              ((for-loop_0
                                (|#%name|
                                 for-loop
                                 (lambda (stack_0 lst_0 pos_0)
                                   (begin
                                     (if (if (pair? lst_0) #t #f)
                                       (let ((arg_0 (unsafe-car lst_0)))
                                         (let ((rest_0 (unsafe-cdr lst_0)))
                                           (let ((stack_1
                                                  (let ((stack_1
                                                         (stack-set
                                                          stack_0
                                                          pos_0
                                                          arg_0)))
                                                    (values stack_1))))
                                             (for-loop_0
                                              stack_1
                                              rest_0
                                              (+ pos_0 1)))))
                                       stack_0))))))
                              (for-loop_0 start-stack_0 args_0 start_0))))))
                    (let ((post-args-pos_0 (intmap-count args-stack_0)))
                      (let ((stack_0
                             (begin
                               (letrec*
                                ((for-loop_0
                                  (|#%name|
                                   for-loop
                                   (lambda (stack_0 pos_0)
                                     (begin
                                       (if (< pos_0 num-body-vars_1)
                                         (let ((stack_1
                                                (let ((stack_1
                                                       (stack-set
                                                        stack_0
                                                        (+
                                                         pos_0
                                                         post-args-pos_0)
                                                        (box
                                                         unsafe-undefined))))
                                                  (values stack_1))))
                                           (for-loop_0 stack_1 (+ pos_0 1)))
                                         stack_0))))))
                                (for-loop_0 args-stack_0 0)))))
                        (interpret-expr b_1 stack_0)))))))))))))
(define interpret-expr
  (letrec ((procz2 (lambda (x_0) (unsafe-vector-length x_0)))
           (procz1 (lambda (x_0) (vector? x_0)))
           (apply-function_0
            (|#%name|
             apply-function
             (lambda (b_0 captured_0 args_0)
               (begin
                 (if (if (eq? 'lambda (unsafe-vector*-ref b_0 0)) #t #f)
                   (let ((mask_0 (unsafe-vector*-ref b_0 1)))
                     (let ((name_0 (unsafe-vector*-ref b_0 2)))
                       (let ((close-vec_0 (unsafe-vector*-ref b_0 3)))
                         (let ((b_1 (unsafe-vector*-ref b_0 4)))
                           (let ((close-vec_1 close-vec_0)
                                 (name_1 name_0)
                                 (mask_1 mask_0))
                             (interpret_0
                              b_1
                              (push-stack captured_0 0 args_0 mask_1)
                              #f))))))
                   (error 'interp-match "no matching clause"))))))
           (capture-closure_0
            (|#%name|
             capture-closure
             (lambda (close-vec_0 stack_0)
               (begin
                 (let ((len_0 (unsafe-vector*-length close-vec_0)))
                   (letrec*
                    ((loop_3
                      (|#%name|
                       loop
                       (lambda (i_0 stack_1 captured_0)
                         (begin
                           (if (= i_0 len_0)
                             (values stack_1 captured_0)
                             (call-with-values
                              (lambda ()
                                (stack-ref
                                 stack_1
                                 (unsafe-vector*-ref close-vec_0 i_0)))
                              (case-lambda
                               ((val-stack_0 val_0)
                                (let ((app_0 (add1 i_0)))
                                  (loop_3
                                   app_0
                                   val-stack_0
                                   (stack-set captured_0 (- -1 i_0) val_0))))
                               (args
                                (raise-binding-result-arity-error
                                 2
                                 args))))))))))
                    (loop_3 0 stack_0 #f)))))))
           (interpret_0
            (|#%name|
             interpret
             (case-lambda
              ((b_0 stack_0) (begin (interpret_1 b_0 stack_0 'values)))
              ((b_0 stack_0 return-mode63_0)
               (interpret_1 b_0 stack_0 return-mode63_0)))))
           (interpret_1
            (|#%name|
             interpret
             (lambda (b64_0 stack65_0 return-mode63_0)
               (begin
                 (if (integer? b64_0)
                   (stack-ref stack65_0 b64_0 (not return-mode63_0))
                   (if (box? b64_0)
                     (stack-ref stack65_0 b64_0 (not return-mode63_0))
                     (if (pair? b64_0)
                       (call-with-values
                        (lambda () (stack-ref stack65_0 (car b64_0)))
                        (case-lambda
                         ((new-stack_0 vec_0)
                          (let ((val_0 (unsafe-vector*-ref vec_0 (cdr b64_0))))
                            (if return-mode63_0
                              (values new-stack_0 val_0)
                              val_0)))
                         (args (raise-binding-result-arity-error 2 args))))
                       (if (symbol? b64_0)
                         (let ((val_0 (hash-ref primitives b64_0)))
                           (if return-mode63_0 (values stack65_0 val_0) val_0))
                         (if (vector? b64_0)
                           (if (if (eq? 'app (unsafe-vector*-ref b64_0 0))
                                 #t
                                 #f)
                             (let ((rator-b_0 (unsafe-vector*-ref b64_0 1)))
                               (let ((len_0 (unsafe-vector*-length b64_0)))
                                 (call-with-values
                                  (lambda () (interpret_0 rator-b_0 stack65_0))
                                  (case-lambda
                                   ((rand-stack_0 rator_0)
                                    (if (eq? len_0 2)
                                      (if return-mode63_0
                                        (if (eq? return-mode63_0 'values)
                                          (call-with-values
                                           (lambda () (|#%app| rator_0))
                                           (case-lambda
                                            ((v_0) (values rand-stack_0 v_0))
                                            (vs_0
                                             (apply
                                              values
                                              rand-stack_0
                                              vs_0))))
                                          (values
                                           'trampoline
                                           (lambda ()
                                             (call-with-values
                                              (lambda ()
                                                (letrec*
                                                 ((loop_3
                                                   (|#%name|
                                                    loop
                                                    (lambda (i_0)
                                                      (begin
                                                        (if (not i_0)
                                                          (|#%app| rator_0)
                                                          (call-with-values
                                                           (lambda ()
                                                             (hash-iterate-key+value
                                                              return-mode63_0
                                                              i_0))
                                                           (case-lambda
                                                            ((k_0 v_0)
                                                             (with-continuation-mark*
                                                              general
                                                              k_0
                                                              v_0
                                                              (loop_3
                                                               (hash-iterate-next
                                                                return-mode63_0
                                                                i_0))))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              2
                                                              args))))))))))
                                                 (loop_3
                                                  (hash-iterate-first
                                                   return-mode63_0))))
                                              (case-lambda
                                               ((v_0)
                                                (values rand-stack_0 v_0))
                                               (vs_0
                                                (apply
                                                 values
                                                 rand-stack_0
                                                 vs_0)))))))
                                        (|#%app| rator_0))
                                      (if (eq? len_0 3)
                                        (call-with-values
                                         (lambda ()
                                           (interpret_0
                                            (unsafe-vector*-ref b64_0 2)
                                            rand-stack_0))
                                         (case-lambda
                                          ((stack_0 rand_0)
                                           (if return-mode63_0
                                             (if (eq? return-mode63_0 'values)
                                               (call-with-values
                                                (lambda ()
                                                  (|#%app| rator_0 rand_0))
                                                (case-lambda
                                                 ((v_0) (values stack_0 v_0))
                                                 (vs_0
                                                  (apply
                                                   values
                                                   stack_0
                                                   vs_0))))
                                               (values
                                                'trampoline
                                                (lambda ()
                                                  (call-with-values
                                                   (lambda ()
                                                     (letrec*
                                                      ((loop_3
                                                        (|#%name|
                                                         loop
                                                         (lambda (i_0)
                                                           (begin
                                                             (if (not i_0)
                                                               (|#%app|
                                                                rator_0
                                                                rand_0)
                                                               (call-with-values
                                                                (lambda ()
                                                                  (hash-iterate-key+value
                                                                   return-mode63_0
                                                                   i_0))
                                                                (case-lambda
                                                                 ((k_0 v_0)
                                                                  (with-continuation-mark*
                                                                   general
                                                                   k_0
                                                                   v_0
                                                                   (loop_3
                                                                    (hash-iterate-next
                                                                     return-mode63_0
                                                                     i_0))))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   2
                                                                   args))))))))))
                                                      (loop_3
                                                       (hash-iterate-first
                                                        return-mode63_0))))
                                                   (case-lambda
                                                    ((v_0)
                                                     (values stack_0 v_0))
                                                    (vs_0
                                                     (apply
                                                      values
                                                      stack_0
                                                      vs_0)))))))
                                             (|#%app| rator_0 rand_0)))
                                          (args
                                           (raise-binding-result-arity-error
                                            2
                                            args))))
                                        (if (eq? len_0 4)
                                          (call-with-values
                                           (lambda ()
                                             (interpret_0
                                              (unsafe-vector*-ref b64_0 2)
                                              rand-stack_0))
                                           (case-lambda
                                            ((stack1_0 rand1_0)
                                             (call-with-values
                                              (lambda ()
                                                (interpret_0
                                                 (unsafe-vector*-ref b64_0 3)
                                                 stack1_0))
                                              (case-lambda
                                               ((stack2_0 rand2_0)
                                                (if return-mode63_0
                                                  (if (eq?
                                                       return-mode63_0
                                                       'values)
                                                    (call-with-values
                                                     (lambda ()
                                                       (|#%app|
                                                        rator_0
                                                        rand1_0
                                                        rand2_0))
                                                     (case-lambda
                                                      ((v_0)
                                                       (values stack2_0 v_0))
                                                      (vs_0
                                                       (apply
                                                        values
                                                        stack2_0
                                                        vs_0))))
                                                    (values
                                                     'trampoline
                                                     (lambda ()
                                                       (call-with-values
                                                        (lambda ()
                                                          (letrec*
                                                           ((loop_3
                                                             (|#%name|
                                                              loop
                                                              (lambda (i_0)
                                                                (begin
                                                                  (if (not i_0)
                                                                    (|#%app|
                                                                     rator_0
                                                                     rand1_0
                                                                     rand2_0)
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (hash-iterate-key+value
                                                                        return-mode63_0
                                                                        i_0))
                                                                     (case-lambda
                                                                      ((k_0
                                                                        v_0)
                                                                       (with-continuation-mark*
                                                                        general
                                                                        k_0
                                                                        v_0
                                                                        (loop_3
                                                                         (hash-iterate-next
                                                                          return-mode63_0
                                                                          i_0))))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args))))))))))
                                                           (loop_3
                                                            (hash-iterate-first
                                                             return-mode63_0))))
                                                        (case-lambda
                                                         ((v_0)
                                                          (values
                                                           stack2_0
                                                           v_0))
                                                         (vs_0
                                                          (apply
                                                           values
                                                           stack2_0
                                                           vs_0)))))))
                                                  (|#%app|
                                                   rator_0
                                                   rand1_0
                                                   rand2_0)))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args)))))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args))))
                                          (call-with-values
                                           (lambda ()
                                             (call-with-values
                                              (lambda ()
                                                (normalise-inputs
                                                 'in-vector
                                                 "vector"
                                                 procz1
                                                 procz2
                                                 b64_0
                                                 2
                                                 #f
                                                 1))
                                              (case-lambda
                                               ((v*_0 start*_0 stop*_0 step*_0)
                                                (begin
                                                  #t
                                                  (letrec*
                                                   ((for-loop_0
                                                     (|#%name|
                                                      for-loop
                                                      (lambda (stack_0
                                                               rev-rands_0
                                                               idx_0)
                                                        (begin
                                                          (if (unsafe-fx<
                                                               idx_0
                                                               stop*_0)
                                                            (let ((b_0
                                                                   (unsafe-vector-ref
                                                                    v*_0
                                                                    idx_0)))
                                                              (call-with-values
                                                               (lambda ()
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (interpret_0
                                                                        b_0
                                                                        stack_0))
                                                                     (case-lambda
                                                                      ((new-stack_0
                                                                        v_0)
                                                                       (values
                                                                        new-stack_0
                                                                        (cons
                                                                         v_0
                                                                         rev-rands_0)))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args)))))
                                                                  (case-lambda
                                                                   ((stack_1
                                                                     rev-rands_1)
                                                                    (values
                                                                     stack_1
                                                                     rev-rands_1))
                                                                   (args
                                                                    (raise-binding-result-arity-error
                                                                     2
                                                                     args)))))
                                                               (case-lambda
                                                                ((stack_1
                                                                  rev-rands_1)
                                                                 (for-loop_0
                                                                  stack_1
                                                                  rev-rands_1
                                                                  (unsafe-fx+
                                                                   idx_0
                                                                   1)))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args)))))
                                                            (values
                                                             stack_0
                                                             rev-rands_0)))))))
                                                   (for-loop_0
                                                    rand-stack_0
                                                    null
                                                    start*_0))))
                                               (args
                                                (raise-binding-result-arity-error
                                                 4
                                                 args)))))
                                           (case-lambda
                                            ((stack_0 rev-rands_0)
                                             (let ((rands_0
                                                    (reverse$1 rev-rands_0)))
                                               (if return-mode63_0
                                                 (if (eq?
                                                      return-mode63_0
                                                      'values)
                                                   (call-with-values
                                                    (lambda ()
                                                      (apply rator_0 rands_0))
                                                    (case-lambda
                                                     ((v_0)
                                                      (values stack_0 v_0))
                                                     (vs_0
                                                      (apply
                                                       values
                                                       stack_0
                                                       vs_0))))
                                                   (values
                                                    'trampoline
                                                    (lambda ()
                                                      (call-with-values
                                                       (lambda ()
                                                         (letrec*
                                                          ((loop_3
                                                            (|#%name|
                                                             loop
                                                             (lambda (i_0)
                                                               (begin
                                                                 (if (not i_0)
                                                                   (apply
                                                                    rator_0
                                                                    rands_0)
                                                                   (call-with-values
                                                                    (lambda ()
                                                                      (hash-iterate-key+value
                                                                       return-mode63_0
                                                                       i_0))
                                                                    (case-lambda
                                                                     ((k_0 v_0)
                                                                      (with-continuation-mark*
                                                                       general
                                                                       k_0
                                                                       v_0
                                                                       (loop_3
                                                                        (hash-iterate-next
                                                                         return-mode63_0
                                                                         i_0))))
                                                                     (args
                                                                      (raise-binding-result-arity-error
                                                                       2
                                                                       args))))))))))
                                                          (loop_3
                                                           (hash-iterate-first
                                                            return-mode63_0))))
                                                       (case-lambda
                                                        ((v_0)
                                                         (values stack_0 v_0))
                                                        (vs_0
                                                         (apply
                                                          values
                                                          stack_0
                                                          vs_0)))))))
                                                 (apply rator_0 rands_0))))
                                            (args
                                             (raise-binding-result-arity-error
                                              2
                                              args))))))))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args))))))
                             (if (if (eq? 'quote (unsafe-vector*-ref b64_0 0))
                                   #t
                                   #f)
                               (let ((v_0 (unsafe-vector*-ref b64_0 1)))
                                 (if return-mode63_0
                                   (values stack65_0 v_0)
                                   v_0))
                               (if (if (eq?
                                        'unbox
                                        (unsafe-vector*-ref b64_0 0))
                                     #t
                                     #f)
                                 (let ((s_0 (unsafe-vector*-ref b64_0 1)))
                                   (call-with-values
                                    (lambda () (stack-ref stack65_0 s_0))
                                    (case-lambda
                                     ((new-stack_0 bx_0)
                                      (let ((val_0 (unsafe-unbox* bx_0)))
                                        (if return-mode63_0
                                          (values new-stack_0 val_0)
                                          val_0)))
                                     (args
                                      (raise-binding-result-arity-error
                                       2
                                       args)))))
                                 (if (if (eq?
                                          'unbox/checked
                                          (unsafe-vector*-ref b64_0 0))
                                       #t
                                       #f)
                                   (let ((s_0 (unsafe-vector*-ref b64_0 1)))
                                     (let ((name_0
                                            (unsafe-vector*-ref b64_0 2)))
                                       (let ((s_1 s_0))
                                         (call-with-values
                                          (lambda () (stack-ref stack65_0 s_1))
                                          (case-lambda
                                           ((new-stack_0 bx_0)
                                            (let ((v_0 (unsafe-unbox* bx_0)))
                                              (let ((val_0
                                                     (check-not-unsafe-undefined
                                                      v_0
                                                      name_0)))
                                                (if return-mode63_0
                                                  (values new-stack_0 val_0)
                                                  val_0))))
                                           (args
                                            (raise-binding-result-arity-error
                                             2
                                             args)))))))
                                   (if (if (eq?
                                            'ref-variable
                                            (unsafe-vector*-ref b64_0 0))
                                         #t
                                         #f)
                                     (let ((s_0 (unsafe-vector*-ref b64_0 1)))
                                       (call-with-values
                                        (lambda () (stack-ref stack65_0 s_0))
                                        (case-lambda
                                         ((new-stack_0 var_0)
                                          (let ((val_0
                                                 (|#%app|
                                                  1/variable-ref/no-check
                                                  var_0)))
                                            (if return-mode63_0
                                              (values new-stack_0 val_0)
                                              val_0)))
                                         (args
                                          (raise-binding-result-arity-error
                                           2
                                           args)))))
                                     (if (if (eq?
                                              'ref-variable/checked
                                              (unsafe-vector*-ref b64_0 0))
                                           #t
                                           #f)
                                       (let ((s_0
                                              (unsafe-vector*-ref b64_0 1)))
                                         (call-with-values
                                          (lambda () (stack-ref stack65_0 s_0))
                                          (case-lambda
                                           ((new-stack_0 var_0)
                                            (let ((val_0
                                                   (|#%app|
                                                    1/variable-ref
                                                    var_0)))
                                              (if return-mode63_0
                                                (values new-stack_0 val_0)
                                                val_0)))
                                           (args
                                            (raise-binding-result-arity-error
                                             2
                                             args)))))
                                       (if (if (eq?
                                                'let
                                                (unsafe-vector*-ref b64_0 0))
                                             #t
                                             #f)
                                         (let ((pos_0
                                                (unsafe-vector*-ref b64_0 1)))
                                           (let ((rhss_0
                                                  (unsafe-vector*-ref
                                                   b64_0
                                                   2)))
                                             (let ((b_0
                                                    (unsafe-vector*-ref
                                                     b64_0
                                                     3)))
                                               (let ((rhss_1 rhss_0)
                                                     (pos_1 pos_0))
                                                 (let ((len_0
                                                        (unsafe-vector*-length
                                                         rhss_1)))
                                                   (let ((body-stack_0
                                                          (loop_0
                                                           len_0
                                                           pos_1
                                                           rhss_1
                                                           0
                                                           stack65_0)))
                                                     (interpret_0
                                                      b_0
                                                      body-stack_0
                                                      return-mode63_0)))))))
                                         (if (if (eq?
                                                  'let*
                                                  (unsafe-vector*-ref b64_0 0))
                                               #t
                                               #f)
                                           (let ((poss_0
                                                  (unsafe-vector*-ref
                                                   b64_0
                                                   1)))
                                             (let ((rhsss_0
                                                    (unsafe-vector*-ref
                                                     b64_0
                                                     2)))
                                               (let ((b_0
                                                      (unsafe-vector*-ref
                                                       b64_0
                                                       3)))
                                                 (let ((rhsss_1 rhsss_0)
                                                       (poss_1 poss_0))
                                                   (let ((body-stack_0
                                                          (begin
                                                            (letrec*
                                                             ((for-loop_0
                                                               (|#%name|
                                                                for-loop
                                                                (lambda (stack_0
                                                                         lst_0
                                                                         lst_1)
                                                                  (begin
                                                                    (if (if (pair?
                                                                             lst_0)
                                                                          (pair?
                                                                           lst_1)
                                                                          #f)
                                                                      (let ((pos_0
                                                                             (unsafe-car
                                                                              lst_0)))
                                                                        (let ((rest_0
                                                                               (unsafe-cdr
                                                                                lst_0)))
                                                                          (let ((rhss_0
                                                                                 (unsafe-car
                                                                                  lst_1)))
                                                                            (let ((rest_1
                                                                                   (unsafe-cdr
                                                                                    lst_1)))
                                                                              (let ((len_0
                                                                                     (unsafe-vector*-length
                                                                                      rhss_0)))
                                                                                (let ((stack_1
                                                                                       (let ((stack_1
                                                                                              (letrec*
                                                                                               ((loop_3
                                                                                                 (|#%name|
                                                                                                  loop
                                                                                                  (lambda (i_0
                                                                                                           stack_1)
                                                                                                    (begin
                                                                                                      (if (fx=
                                                                                                           i_0
                                                                                                           len_0)
                                                                                                        stack_1
                                                                                                        (call-with-values
                                                                                                         (lambda ()
                                                                                                           (interpret_0
                                                                                                            (unsafe-vector*-ref
                                                                                                             rhss_0
                                                                                                             i_0)
                                                                                                            stack_1))
                                                                                                         (case-lambda
                                                                                                          ((new-stack_0
                                                                                                            val_0)
                                                                                                           (let ((app_0
                                                                                                                  (fx+
                                                                                                                   i_0
                                                                                                                   1)))
                                                                                                             (loop_3
                                                                                                              app_0
                                                                                                              (stack-set
                                                                                                               new-stack_0
                                                                                                               (fx+
                                                                                                                i_0
                                                                                                                pos_0)
                                                                                                               val_0))))
                                                                                                          (args
                                                                                                           (raise-binding-result-arity-error
                                                                                                            2
                                                                                                            args))))))))))
                                                                                               (loop_3
                                                                                                0
                                                                                                stack_0))))
                                                                                         (values
                                                                                          stack_1))))
                                                                                  (for-loop_0
                                                                                   stack_1
                                                                                   rest_0
                                                                                   rest_1)))))))
                                                                      stack_0))))))
                                                             (for-loop_0
                                                              stack65_0
                                                              poss_1
                                                              rhsss_1)))))
                                                     (interpret_0
                                                      b_0
                                                      body-stack_0
                                                      return-mode63_0))))))
                                           (if (if (eq?
                                                    'letrec
                                                    (unsafe-vector*-ref
                                                     b64_0
                                                     0))
                                                 #t
                                                 #f)
                                             (let ((pos_0
                                                    (unsafe-vector*-ref
                                                     b64_0
                                                     1)))
                                               (let ((rhss_0
                                                      (unsafe-vector*-ref
                                                       b64_0
                                                       2)))
                                                 (let ((b_0
                                                        (unsafe-vector*-ref
                                                         b64_0
                                                         3)))
                                                   (let ((rhss_1 rhss_0)
                                                         (pos_1 pos_0))
                                                     (let ((len_0
                                                            (unsafe-vector*-length
                                                             rhss_1)))
                                                       (call-with-values
                                                        (lambda ()
                                                          (loop_1
                                                           len_0
                                                           pos_1
                                                           stack65_0
                                                           0))
                                                        (case-lambda
                                                         ((body-stack_0
                                                           boxes_0)
                                                          (letrec*
                                                           ((loop_3
                                                             (|#%name|
                                                              loop
                                                              (lambda (i_0
                                                                       stack_0
                                                                       boxes_1)
                                                                (begin
                                                                  (if (fx=
                                                                       i_0
                                                                       len_0)
                                                                    (interpret_0
                                                                     b_0
                                                                     stack_0
                                                                     return-mode63_0)
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (interpret_0
                                                                        (unsafe-vector*-ref
                                                                         rhss_1
                                                                         i_0)
                                                                        stack_0))
                                                                     (case-lambda
                                                                      ((new-stack_0
                                                                        val_0)
                                                                       (begin
                                                                         (set-box!
                                                                          (car
                                                                           boxes_1)
                                                                          val_0)
                                                                         (let ((app_0
                                                                                (fx+
                                                                                 i_0
                                                                                 1)))
                                                                           (loop_3
                                                                            app_0
                                                                            new-stack_0
                                                                            (cdr
                                                                             boxes_1)))))
                                                                      (args
                                                                       (raise-binding-result-arity-error
                                                                        2
                                                                        args))))))))))
                                                           (loop_3
                                                            0
                                                            body-stack_0
                                                            boxes_0)))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args)))))))))
                                             (if (eq?
                                                  'begin
                                                  (unsafe-vector*-ref b64_0 0))
                                               (let ((last_0
                                                      (fx-
                                                       (unsafe-vector*-length
                                                        b64_0)
                                                       1)))
                                                 (letrec*
                                                  ((loop_3
                                                    (|#%name|
                                                     loop
                                                     (lambda (i_0 stack_0)
                                                       (begin
                                                         (if (fx= i_0 last_0)
                                                           (interpret_0
                                                            (unsafe-vector*-ref
                                                             b64_0
                                                             i_0)
                                                            stack_0
                                                            return-mode63_0)
                                                           (call-with-values
                                                            (lambda ()
                                                              (interpret_0
                                                               (unsafe-vector*-ref
                                                                b64_0
                                                                i_0)
                                                               stack_0))
                                                            (case-lambda
                                                             ((new-stack_0
                                                               val_0)
                                                              (loop_3
                                                               (fx+ i_0 1)
                                                               new-stack_0))
                                                             ((new-stack_0
                                                               .
                                                               vals_0)
                                                              (loop_3
                                                               (fx+ i_0 1)
                                                               new-stack_0))))))))))
                                                  (loop_3 1 stack65_0)))
                                               (if (if (eq?
                                                        'beginl
                                                        (unsafe-vector*-ref
                                                         b64_0
                                                         0))
                                                     #t
                                                     #f)
                                                 (let ((bs_0
                                                        (unsafe-vector*-ref
                                                         b64_0
                                                         1)))
                                                   (letrec*
                                                    ((loop_3
                                                      (|#%name|
                                                       loop
                                                       (lambda (bs_1 stack_0)
                                                         (begin
                                                           (if (null?
                                                                (cdr bs_1))
                                                             (interpret_0
                                                              (car bs_1)
                                                              stack_0
                                                              return-mode63_0)
                                                             (call-with-values
                                                              (lambda ()
                                                                (interpret_0
                                                                 (car bs_1)
                                                                 stack_0))
                                                              (case-lambda
                                                               ((new-stack_0
                                                                 val_0)
                                                                (loop_3
                                                                 (cdr bs_1)
                                                                 new-stack_0))
                                                               ((new-stack_0
                                                                 .
                                                                 vals_0)
                                                                (loop_3
                                                                 (cdr bs_1)
                                                                 new-stack_0))))))))))
                                                    (loop_3 bs_0 stack65_0)))
                                                 (if (if (eq?
                                                          'begin0
                                                          (unsafe-vector*-ref
                                                           b64_0
                                                           0))
                                                       #t
                                                       #f)
                                                   (let ((b0_0
                                                          (unsafe-vector*-ref
                                                           b64_0
                                                           1)))
                                                     (let ((last_0
                                                            (fx-
                                                             (unsafe-vector*-length
                                                              b64_0)
                                                             1)))
                                                       (call-with-values
                                                        (lambda ()
                                                          (interpret_0
                                                           b0_0
                                                           stack65_0))
                                                        (lambda (stack_0
                                                                 .
                                                                 vals_0)
                                                          (letrec*
                                                           ((loop_3
                                                             (|#%name|
                                                              loop
                                                              (lambda (i_0
                                                                       stack_1)
                                                                (begin
                                                                  (let ((new-stack_0
                                                                         (call-with-values
                                                                          (lambda ()
                                                                            (interpret_0
                                                                             (unsafe-vector*-ref
                                                                              b64_0
                                                                              i_0)
                                                                             stack_1))
                                                                          (case-lambda
                                                                           ((new-stack_0
                                                                             val_0)
                                                                            new-stack_0)
                                                                           ((new-stack_0
                                                                             .
                                                                             vals_1)
                                                                            new-stack_0)))))
                                                                    (if (fx=
                                                                         i_0
                                                                         last_0)
                                                                      (if return-mode63_0
                                                                        (apply
                                                                         values
                                                                         new-stack_0
                                                                         vals_0)
                                                                        (apply
                                                                         values
                                                                         vals_0))
                                                                      (loop_3
                                                                       (fx+
                                                                        i_0
                                                                        1)
                                                                       new-stack_0))))))))
                                                           (loop_3
                                                            2
                                                            stack_0))))))
                                                   (if (if (eq?
                                                            '$value
                                                            (unsafe-vector*-ref
                                                             b64_0
                                                             0))
                                                         #t
                                                         #f)
                                                     (let ((e_0
                                                            (unsafe-vector*-ref
                                                             b64_0
                                                             1)))
                                                       (call-with-values
                                                        (lambda ()
                                                          (interpret_0
                                                           e_0
                                                           stack65_0))
                                                        (case-lambda
                                                         ((new-stack_0 v_0)
                                                          (if return-mode63_0
                                                            (values
                                                             new-stack_0
                                                             v_0)
                                                            v_0))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args)))))
                                                     (if (if (eq?
                                                              'clear
                                                              (unsafe-vector*-ref
                                                               b64_0
                                                               0))
                                                           #t
                                                           #f)
                                                       (let ((clears_0
                                                              (unsafe-vector*-ref
                                                               b64_0
                                                               1)))
                                                         (let ((e_0
                                                                (unsafe-vector*-ref
                                                                 b64_0
                                                                 2)))
                                                           (let ((clears_1
                                                                  clears_0))
                                                             (letrec*
                                                              ((loop_3
                                                                (|#%name|
                                                                 loop
                                                                 (lambda (clears_2
                                                                          stack_0)
                                                                   (begin
                                                                     (if (null?
                                                                          clears_2)
                                                                       (interpret_0
                                                                        e_0
                                                                        stack_0
                                                                        return-mode63_0)
                                                                       (let ((app_0
                                                                              (cdr
                                                                               clears_2)))
                                                                         (loop_3
                                                                          app_0
                                                                          (let ((i_0
                                                                                 (car
                                                                                  clears_2)))
                                                                            (delete
                                                                             stack_0
                                                                             i_0))))))))))
                                                              (loop_3
                                                               clears_1
                                                               stack65_0)))))
                                                       (if (if (eq?
                                                                'enbox
                                                                (unsafe-vector*-ref
                                                                 b64_0
                                                                 0))
                                                             #t
                                                             #f)
                                                         (let ((pos_0
                                                                (unsafe-vector*-ref
                                                                 b64_0
                                                                 1)))
                                                           (let ((e_0
                                                                  (unsafe-vector*-ref
                                                                   b64_0
                                                                   2)))
                                                             (let ((pos_1
                                                                    pos_0))
                                                               (let ((new-stack_0
                                                                      (stack-set
                                                                       stack65_0
                                                                       pos_1
                                                                       (box
                                                                        (stack-ref
                                                                         stack65_0
                                                                         pos_1
                                                                         #t)))))
                                                                 (interpret_0
                                                                  e_0
                                                                  new-stack_0
                                                                  return-mode63_0)))))
                                                         (if (if (eq?
                                                                  'if
                                                                  (unsafe-vector*-ref
                                                                   b64_0
                                                                   0))
                                                               #t
                                                               #f)
                                                           (let ((tst_0
                                                                  (unsafe-vector*-ref
                                                                   b64_0
                                                                   1)))
                                                             (let ((thn_0
                                                                    (unsafe-vector*-ref
                                                                     b64_0
                                                                     2)))
                                                               (let ((els_0
                                                                      (unsafe-vector*-ref
                                                                       b64_0
                                                                       3)))
                                                                 (let ((thn_1
                                                                        thn_0)
                                                                       (tst_1
                                                                        tst_0))
                                                                   (call-with-values
                                                                    (lambda ()
                                                                      (interpret_0
                                                                       tst_1
                                                                       stack65_0))
                                                                    (case-lambda
                                                                     ((new-stack_0
                                                                       val_0)
                                                                      (if val_0
                                                                        (interpret_0
                                                                         thn_1
                                                                         new-stack_0
                                                                         return-mode63_0)
                                                                        (interpret_0
                                                                         els_0
                                                                         new-stack_0
                                                                         return-mode63_0)))
                                                                     (args
                                                                      (raise-binding-result-arity-error
                                                                       2
                                                                       args))))))))
                                                           (if (if (eq?
                                                                    'wcm
                                                                    (unsafe-vector*-ref
                                                                     b64_0
                                                                     0))
                                                                 #t
                                                                 #f)
                                                             (let ((key_0
                                                                    (unsafe-vector*-ref
                                                                     b64_0
                                                                     1)))
                                                               (let ((val_0
                                                                      (unsafe-vector*-ref
                                                                       b64_0
                                                                       2)))
                                                                 (let ((body_0
                                                                        (unsafe-vector*-ref
                                                                         b64_0
                                                                         3)))
                                                                   (let ((val_1
                                                                          val_0)
                                                                         (key_1
                                                                          key_0))
                                                                     (call-with-values
                                                                      (lambda ()
                                                                        (interpret_0
                                                                         key_1
                                                                         stack65_0))
                                                                      (case-lambda
                                                                       ((k-stack_0
                                                                         k-val_0)
                                                                        (call-with-values
                                                                         (lambda ()
                                                                           (interpret_0
                                                                            val_1
                                                                            k-stack_0))
                                                                         (case-lambda
                                                                          ((v-stack_0
                                                                            v-val_0)
                                                                           (if (not
                                                                                return-mode63_0)
                                                                             (with-continuation-mark*
                                                                              general
                                                                              k-val_0
                                                                              v-val_0
                                                                              (interpret_0
                                                                               body_0
                                                                               v-stack_0
                                                                               #f))
                                                                             (if (eq?
                                                                                  return-mode63_0
                                                                                  'values)
                                                                               (|#%app|
                                                                                (call-with-values
                                                                                 (lambda ()
                                                                                   (with-continuation-mark*
                                                                                    general
                                                                                    k-val_0
                                                                                    v-val_0
                                                                                    (interpret_0
                                                                                     body_0
                                                                                     v-stack_0
                                                                                     (hasheq
                                                                                      k-val_0
                                                                                      v-val_0))))
                                                                                 (case-lambda
                                                                                  ((stack_0
                                                                                    v_0)
                                                                                   (if (eq?
                                                                                        stack_0
                                                                                        'trampoline)
                                                                                     v_0
                                                                                     (lambda ()
                                                                                       (values
                                                                                        stack_0
                                                                                        v_0))))
                                                                                  ((stack_0
                                                                                    .
                                                                                    vs_0)
                                                                                   (lambda ()
                                                                                     (apply
                                                                                      values
                                                                                      stack_0
                                                                                      vs_0))))))
                                                                               (with-continuation-mark*
                                                                                general
                                                                                k-val_0
                                                                                v-val_0
                                                                                (interpret_0
                                                                                 body_0
                                                                                 v-stack_0
                                                                                 (hash-set
                                                                                  return-mode63_0
                                                                                  k-val_0
                                                                                  v-val_0))))))
                                                                          (args
                                                                           (raise-binding-result-arity-error
                                                                            2
                                                                            args)))))
                                                                       (args
                                                                        (raise-binding-result-arity-error
                                                                         2
                                                                         args))))))))
                                                             (if (if (eq?
                                                                      'cwv
                                                                      (unsafe-vector*-ref
                                                                       b64_0
                                                                       0))
                                                                   #t
                                                                   #f)
                                                               (let ((b_0
                                                                      (unsafe-vector*-ref
                                                                       b64_0
                                                                       1)))
                                                                 (let ((pos_0
                                                                        (unsafe-vector*-ref
                                                                         b64_0
                                                                         2)))
                                                                   (let ((name_0
                                                                          (unsafe-vector*-ref
                                                                           b64_0
                                                                           3)))
                                                                     (let ((clauses_0
                                                                            (unsafe-vector*-ref
                                                                             b64_0
                                                                             4)))
                                                                       (let ((name_1
                                                                              name_0)
                                                                             (pos_1
                                                                              pos_0)
                                                                             (b_1
                                                                              b_0))
                                                                         (call-with-values
                                                                          (lambda ()
                                                                            (call-with-values
                                                                             (lambda ()
                                                                               (interpret_0
                                                                                b_1
                                                                                stack65_0))
                                                                             (lambda (stack_0
                                                                                      .
                                                                                      vals_0)
                                                                               (values
                                                                                stack_0
                                                                                vals_0))))
                                                                          (case-lambda
                                                                           ((new-stack_0
                                                                             vs_0)
                                                                            (let ((len_0
                                                                                   (length
                                                                                    vs_0)))
                                                                              (letrec*
                                                                               ((loop_3
                                                                                 (|#%name|
                                                                                  loop
                                                                                  (lambda (clauses_1
                                                                                           full-mask_0)
                                                                                    (begin
                                                                                      (if (null?
                                                                                           clauses_1)
                                                                                        (apply
                                                                                         raise-arity-mask-error
                                                                                         (if name_1
                                                                                           name_1
                                                                                           '|#<procedure>|)
                                                                                         full-mask_0
                                                                                         vs_0)
                                                                                        (let ((v_0
                                                                                               (car
                                                                                                clauses_1)))
                                                                                          (let ((mask_0
                                                                                                 (unsafe-vector*-ref
                                                                                                  v_0
                                                                                                  0)))
                                                                                            (let ((b_2
                                                                                                   (unsafe-vector*-ref
                                                                                                    v_0
                                                                                                    1)))
                                                                                              (let ((mask_1
                                                                                                     mask_0))
                                                                                                (if (bitwise-bit-set?
                                                                                                     mask_1
                                                                                                     len_0)
                                                                                                  (interpret_0
                                                                                                   b_2
                                                                                                   (push-stack
                                                                                                    new-stack_0
                                                                                                    pos_1
                                                                                                    vs_0
                                                                                                    mask_1)
                                                                                                   return-mode63_0)
                                                                                                  (let ((app_0
                                                                                                         (cdr
                                                                                                          clauses_1)))
                                                                                                    (loop_3
                                                                                                     app_0
                                                                                                     (fxior
                                                                                                      mask_1
                                                                                                      full-mask_0))))))))))))))
                                                                               (loop_3
                                                                                clauses_0
                                                                                0))))
                                                                           (args
                                                                            (raise-binding-result-arity-error
                                                                             2
                                                                             args)))))))))
                                                               (if (if (eq?
                                                                        'cwmp0
                                                                        (unsafe-vector*-ref
                                                                         b64_0
                                                                         0))
                                                                     #t
                                                                     #f)
                                                                 (let ((b_0
                                                                        (unsafe-vector*-ref
                                                                         b64_0
                                                                         1)))
                                                                   (begin
                                                                     (if return-mode63_0
                                                                       (error
                                                                        'interpret
                                                                        "expect call-with-module-prompt in tail position")
                                                                       (void))
                                                                     (|#%app|
                                                                      (hash-ref
                                                                       primitives
                                                                       'call-with-module-prompt)
                                                                      (lambda ()
                                                                        (interpret_0
                                                                         b_0
                                                                         stack65_0
                                                                         #f)))))
                                                                 (if (if (eq?
                                                                          'cwmp
                                                                          (unsafe-vector*-ref
                                                                           b64_0
                                                                           0))
                                                                       #t
                                                                       #f)
                                                                   (let ((b_0
                                                                          (unsafe-vector*-ref
                                                                           b64_0
                                                                           1)))
                                                                     (let ((ids_0
                                                                            (unsafe-vector*-ref
                                                                             b64_0
                                                                             2)))
                                                                       (let ((constances_0
                                                                              (unsafe-vector*-ref
                                                                               b64_0
                                                                               3)))
                                                                         (let ((var-es_0
                                                                                (unsafe-vector*-ref
                                                                                 b64_0
                                                                                 4)))
                                                                           (let ((constances_1
                                                                                  constances_0)
                                                                                 (ids_1
                                                                                  ids_0)
                                                                                 (b_1
                                                                                  b_0))
                                                                             (begin
                                                                               (if return-mode63_0
                                                                                 (error
                                                                                  'interpret
                                                                                  "expect call-with-module-prompt in tail position")
                                                                                 (void))
                                                                               (let ((app_0
                                                                                      (hash-ref
                                                                                       primitives
                                                                                       'call-with-module-prompt)))
                                                                                 (apply
                                                                                  app_0
                                                                                  (lambda ()
                                                                                    (interpret_0
                                                                                     b_1
                                                                                     stack65_0
                                                                                     #f))
                                                                                  ids_1
                                                                                  constances_1
                                                                                  (reverse$1
                                                                                   (begin
                                                                                     (letrec*
                                                                                      ((for-loop_0
                                                                                        (|#%name|
                                                                                         for-loop
                                                                                         (lambda (fold-var_0
                                                                                                  lst_0)
                                                                                           (begin
                                                                                             (if (pair?
                                                                                                  lst_0)
                                                                                               (let ((e_0
                                                                                                      (unsafe-car
                                                                                                       lst_0)))
                                                                                                 (let ((rest_0
                                                                                                        (unsafe-cdr
                                                                                                         lst_0)))
                                                                                                   (let ((fold-var_1
                                                                                                          (let ((fold-var_1
                                                                                                                 (cons
                                                                                                                  (interpret_0
                                                                                                                   e_0
                                                                                                                   stack65_0
                                                                                                                   #f)
                                                                                                                  fold-var_0)))
                                                                                                            (values
                                                                                                             fold-var_1))))
                                                                                                     (for-loop_0
                                                                                                      fold-var_1
                                                                                                      rest_0))))
                                                                                               fold-var_0))))))
                                                                                      (for-loop_0
                                                                                       null
                                                                                       var-es_0))))))))))))
                                                                   (if (if (eq?
                                                                            'lambda
                                                                            (unsafe-vector*-ref
                                                                             b64_0
                                                                             0))
                                                                         #t
                                                                         #f)
                                                                     (let ((mask_0
                                                                            (unsafe-vector*-ref
                                                                             b64_0
                                                                             1)))
                                                                       (let ((wrap-data_0
                                                                              (unsafe-vector*-ref
                                                                               b64_0
                                                                               2)))
                                                                         (let ((close-vec_0
                                                                                (unsafe-vector*-ref
                                                                                 b64_0
                                                                                 3)))
                                                                           (let ((__0
                                                                                  (unsafe-vector*-ref
                                                                                   b64_0
                                                                                   4)))
                                                                             (let ((close-vec_1
                                                                                    close-vec_0)
                                                                                   (wrap-data_1
                                                                                    wrap-data_0)
                                                                                   (mask_1
                                                                                    mask_0))
                                                                               (call-with-values
                                                                                (lambda ()
                                                                                  (capture-closure_0
                                                                                   close-vec_1
                                                                                   stack65_0))
                                                                                (case-lambda
                                                                                 ((new-stack_0
                                                                                   captured_0)
                                                                                  (let ((val_0
                                                                                         (|#%app|
                                                                                          make-interp-procedure*
                                                                                          (lambda args_0
                                                                                            (apply-function_0
                                                                                             b64_0
                                                                                             captured_0
                                                                                             args_0))
                                                                                          mask_1
                                                                                          wrap-data_1)))
                                                                                    (if return-mode63_0
                                                                                      (values
                                                                                       new-stack_0
                                                                                       val_0)
                                                                                      val_0)))
                                                                                 (args
                                                                                  (raise-binding-result-arity-error
                                                                                   2
                                                                                   args)))))))))
                                                                     (if (if (eq?
                                                                              'case-lambda
                                                                              (unsafe-vector*-ref
                                                                               b64_0
                                                                               0))
                                                                           #t
                                                                           #f)
                                                                       (let ((mask_0
                                                                              (unsafe-vector*-ref
                                                                               b64_0
                                                                               1)))
                                                                         (let ((wrap-data_0
                                                                                (unsafe-vector*-ref
                                                                                 b64_0
                                                                                 2)))
                                                                           (let ((mask_1
                                                                                  mask_0))
                                                                             (let ((n_0
                                                                                    (unsafe-vector*-length
                                                                                     b64_0)))
                                                                               (call-with-values
                                                                                (lambda ()
                                                                                  (loop_2
                                                                                   b64_0
                                                                                   n_0
                                                                                   3
                                                                                   stack65_0))
                                                                                (case-lambda
                                                                                 ((new-stack_0
                                                                                   captureds_0)
                                                                                  (let ((val_0
                                                                                         (|#%app|
                                                                                          make-interp-procedure*
                                                                                          (lambda args_0
                                                                                            (let ((len_0
                                                                                                   (length
                                                                                                    args_0)))
                                                                                              (letrec*
                                                                                               ((loop_3
                                                                                                 (|#%name|
                                                                                                  loop
                                                                                                  (lambda (i_0
                                                                                                           captureds_1
                                                                                                           full-mask_0)
                                                                                                    (begin
                                                                                                      (if (fx=
                                                                                                           i_0
                                                                                                           n_0)
                                                                                                        (apply
                                                                                                         raise-arity-mask-error
                                                                                                         '|#<procedure>|
                                                                                                         full-mask_0
                                                                                                         args_0)
                                                                                                        (let ((one-b_0
                                                                                                               (unsafe-vector*-ref
                                                                                                                b64_0
                                                                                                                i_0)))
                                                                                                          (if (if (eq?
                                                                                                                   'lambda
                                                                                                                   (unsafe-vector*-ref
                                                                                                                    one-b_0
                                                                                                                    0))
                                                                                                                #t
                                                                                                                #f)
                                                                                                            (let ((mask_2
                                                                                                                   (unsafe-vector*-ref
                                                                                                                    one-b_0
                                                                                                                    1)))
                                                                                                              (if (bitwise-bit-set?
                                                                                                                   mask_2
                                                                                                                   len_0)
                                                                                                                (apply-function_0
                                                                                                                 one-b_0
                                                                                                                 (car
                                                                                                                  captureds_1)
                                                                                                                 args_0)
                                                                                                                (let ((app_0
                                                                                                                       (fx+
                                                                                                                        i_0
                                                                                                                        1)))
                                                                                                                  (let ((app_1
                                                                                                                         (cdr
                                                                                                                          captureds_1)))
                                                                                                                    (loop_3
                                                                                                                     app_0
                                                                                                                     app_1
                                                                                                                     (fxior
                                                                                                                      full-mask_0
                                                                                                                      mask_2))))))
                                                                                                            (error
                                                                                                             'interp-match
                                                                                                             "no matching clause")))))))))
                                                                                               (loop_3
                                                                                                3
                                                                                                captureds_0
                                                                                                0))))
                                                                                          mask_1
                                                                                          wrap-data_0)))
                                                                                    (if return-mode63_0
                                                                                      (values
                                                                                       new-stack_0
                                                                                       val_0)
                                                                                      val_0)))
                                                                                 (args
                                                                                  (raise-binding-result-arity-error
                                                                                   2
                                                                                   args))))))))
                                                                       (if (if (eq?
                                                                                'set-variable!
                                                                                (unsafe-vector*-ref
                                                                                 b64_0
                                                                                 0))
                                                                             #t
                                                                             #f)
                                                                         (let ((s_0
                                                                                (unsafe-vector*-ref
                                                                                 b64_0
                                                                                 1)))
                                                                           (let ((b_0
                                                                                  (unsafe-vector*-ref
                                                                                   b64_0
                                                                                   2)))
                                                                             (let ((c_0
                                                                                    (unsafe-vector*-ref
                                                                                     b64_0
                                                                                     3)))
                                                                               (let ((defn?_0
                                                                                      (unsafe-vector*-ref
                                                                                       b64_0
                                                                                       4)))
                                                                                 (let ((c_1
                                                                                        c_0)
                                                                                       (b_1
                                                                                        b_0)
                                                                                       (s_1
                                                                                        s_0))
                                                                                   (call-with-values
                                                                                    (lambda ()
                                                                                      (stack-ref
                                                                                       stack65_0
                                                                                       s_1))
                                                                                    (case-lambda
                                                                                     ((var-stack_0
                                                                                       var_0)
                                                                                      (call-with-values
                                                                                       (lambda ()
                                                                                         (interpret_0
                                                                                          b_1
                                                                                          var-stack_0))
                                                                                       (case-lambda
                                                                                        ((val-stack_0
                                                                                          val_0)
                                                                                         (begin
                                                                                           (if defn?_0
                                                                                             (|#%app|
                                                                                              1/variable-set!/define
                                                                                              var_0
                                                                                              val_0
                                                                                              c_1)
                                                                                             (|#%app|
                                                                                              1/variable-set!
                                                                                              var_0
                                                                                              val_0))
                                                                                           (if return-mode63_0
                                                                                             (values
                                                                                              val-stack_0
                                                                                              (void))
                                                                                             (void))))
                                                                                        (args
                                                                                         (raise-binding-result-arity-error
                                                                                          2
                                                                                          args)))))
                                                                                     (args
                                                                                      (raise-binding-result-arity-error
                                                                                       2
                                                                                       args)))))))))
                                                                         (if (if (eq?
                                                                                  'set!-indirect
                                                                                  (unsafe-vector*-ref
                                                                                   b64_0
                                                                                   0))
                                                                               #t
                                                                               #f)
                                                                           (let ((s_0
                                                                                  (unsafe-vector*-ref
                                                                                   b64_0
                                                                                   1)))
                                                                             (let ((e_0
                                                                                    (unsafe-vector*-ref
                                                                                     b64_0
                                                                                     2)))
                                                                               (let ((b_0
                                                                                      (unsafe-vector*-ref
                                                                                       b64_0
                                                                                       3)))
                                                                                 (let ((e_1
                                                                                        e_0)
                                                                                       (s_1
                                                                                        s_0))
                                                                                   (call-with-values
                                                                                    (lambda ()
                                                                                      (stack-ref
                                                                                       stack65_0
                                                                                       s_1))
                                                                                    (case-lambda
                                                                                     ((vec-stack_0
                                                                                       vec_0)
                                                                                      (call-with-values
                                                                                       (lambda ()
                                                                                         (interpret_0
                                                                                          b_0
                                                                                          vec-stack_0))
                                                                                       (case-lambda
                                                                                        ((val-stack_0
                                                                                          val_0)
                                                                                         (begin
                                                                                           (unsafe-vector*-set!
                                                                                            vec_0
                                                                                            e_1
                                                                                            val_0)
                                                                                           (if return-mode63_0
                                                                                             (values
                                                                                              val-stack_0
                                                                                              (void))
                                                                                             (void))))
                                                                                        (args
                                                                                         (raise-binding-result-arity-error
                                                                                          2
                                                                                          args)))))
                                                                                     (args
                                                                                      (raise-binding-result-arity-error
                                                                                       2
                                                                                       args))))))))
                                                                           (if (if (eq?
                                                                                    'set!-boxed
                                                                                    (unsafe-vector*-ref
                                                                                     b64_0
                                                                                     0))
                                                                                 #t
                                                                                 #f)
                                                                             (let ((s_0
                                                                                    (unsafe-vector*-ref
                                                                                     b64_0
                                                                                     1)))
                                                                               (let ((b_0
                                                                                      (unsafe-vector*-ref
                                                                                       b64_0
                                                                                       2)))
                                                                                 (let ((name_0
                                                                                        (unsafe-vector*-ref
                                                                                         b64_0
                                                                                         3)))
                                                                                   (let ((b_1
                                                                                          b_0)
                                                                                         (s_1
                                                                                          s_0))
                                                                                     (call-with-values
                                                                                      (lambda ()
                                                                                        (stack-ref
                                                                                         stack65_0
                                                                                         s_1))
                                                                                      (case-lambda
                                                                                       ((bx-stack_0
                                                                                         bx_0)
                                                                                        (call-with-values
                                                                                         (lambda ()
                                                                                           (interpret_0
                                                                                            b_1
                                                                                            bx-stack_0))
                                                                                         (case-lambda
                                                                                          ((v-stack_0
                                                                                            v_0)
                                                                                           (begin
                                                                                             (unsafe-set-box*!
                                                                                              bx_0
                                                                                              v_0)
                                                                                             (if return-mode63_0
                                                                                               (values
                                                                                                v-stack_0
                                                                                                (void))
                                                                                               (void))))
                                                                                          (args
                                                                                           (raise-binding-result-arity-error
                                                                                            2
                                                                                            args)))))
                                                                                       (args
                                                                                        (raise-binding-result-arity-error
                                                                                         2
                                                                                         args))))))))
                                                                             (if (if (eq?
                                                                                      'set!-boxed/checked
                                                                                      (unsafe-vector*-ref
                                                                                       b64_0
                                                                                       0))
                                                                                   #t
                                                                                   #f)
                                                                               (let ((s_0
                                                                                      (unsafe-vector*-ref
                                                                                       b64_0
                                                                                       1)))
                                                                                 (let ((b_0
                                                                                        (unsafe-vector*-ref
                                                                                         b64_0
                                                                                         2)))
                                                                                   (let ((name_0
                                                                                          (unsafe-vector*-ref
                                                                                           b64_0
                                                                                           3)))
                                                                                     (let ((b_1
                                                                                            b_0)
                                                                                           (s_1
                                                                                            s_0))
                                                                                       (call-with-values
                                                                                        (lambda ()
                                                                                          (stack-ref
                                                                                           stack65_0
                                                                                           s_1))
                                                                                        (case-lambda
                                                                                         ((bx-stack_0
                                                                                           bx_0)
                                                                                          (call-with-values
                                                                                           (lambda ()
                                                                                             (interpret_0
                                                                                              b_1
                                                                                              bx-stack_0))
                                                                                           (case-lambda
                                                                                            ((v-stack_0
                                                                                              v_0)
                                                                                             (begin
                                                                                               (check-not-unsafe-undefined/assign
                                                                                                (unsafe-unbox*
                                                                                                 bx_0)
                                                                                                name_0)
                                                                                               (unsafe-set-box*!
                                                                                                bx_0
                                                                                                v_0)
                                                                                               (if return-mode63_0
                                                                                                 (values
                                                                                                  v-stack_0
                                                                                                  (void))
                                                                                                 (void))))
                                                                                            (args
                                                                                             (raise-binding-result-arity-error
                                                                                              2
                                                                                              args)))))
                                                                                         (args
                                                                                          (raise-binding-result-arity-error
                                                                                           2
                                                                                           args))))))))
                                                                               (error
                                                                                'interp-match
                                                                                "no matching clause")))))))))))))))))))))))))))
                           (if return-mode63_0
                             (values stack65_0 b64_0)
                             b64_0))))))))))
           (loop_0
            (|#%name|
             loop
             (lambda (len_0 pos_0 rhss_0 i_0 stack_0)
               (begin
                 (if (fx= i_0 len_0)
                   stack_0
                   (call-with-values
                    (lambda ()
                      (interpret_0 (unsafe-vector*-ref rhss_0 i_0) stack_0))
                    (case-lambda
                     ((new-stack_0 val_0)
                      (let ((app_0
                             (loop_0
                              len_0
                              pos_0
                              rhss_0
                              (fx+ i_0 1)
                              new-stack_0)))
                        (stack-set app_0 (fx+ i_0 pos_0) val_0)))
                     (args (raise-binding-result-arity-error 2 args)))))))))
           (loop_1
            (|#%name|
             loop
             (lambda (len_0 pos_0 stack_0 i_0)
               (begin
                 (if (= i_0 len_0)
                   (values stack_0 null)
                   (let ((bx_0 (box unsafe-undefined)))
                     (call-with-values
                      (lambda ()
                        (let ((app_0
                               (stack-set
                                stack_0
                                (fx+ (fx- len_0 i_0 1) pos_0)
                                bx_0)))
                          (loop_1 len_0 pos_0 app_0 (add1 i_0))))
                      (case-lambda
                       ((new-stack_0 boxes_0)
                        (values new-stack_0 (cons bx_0 boxes_0)))
                       (args (raise-binding-result-arity-error 2 args))))))))))
           (loop_2
            (|#%name|
             loop
             (lambda (b64_0 n_0 i_0 stack_0)
               (begin
                 (if (fx= i_0 n_0)
                   (values stack_0 '())
                   (call-with-values
                    (lambda () (loop_2 b64_0 n_0 (fx+ i_0 1) stack_0))
                    (case-lambda
                     ((rest-stack_0 rest-captureds_0)
                      (call-with-values
                       (lambda ()
                         (let ((v_0 (unsafe-vector*-ref b64_0 i_0)))
                           (if (if (eq? 'lambda (unsafe-vector*-ref v_0 0))
                                 #t
                                 #f)
                             (let ((mask_0 (unsafe-vector*-ref v_0 1)))
                               (let ((__0 (unsafe-vector*-ref v_0 2)))
                                 (let ((close-vec_0
                                        (unsafe-vector*-ref v_0 3)))
                                   (let ((__1 __0) (mask_1 mask_0))
                                     (capture-closure_0
                                      close-vec_0
                                      rest-stack_0)))))
                             (error 'interp-match "no matching clause"))))
                       (case-lambda
                        ((new-stack_0 captured_0)
                         (values
                          new-stack_0
                          (cons captured_0 rest-captureds_0)))
                        (args (raise-binding-result-arity-error 2 args)))))
                     (args (raise-binding-result-arity-error 2 args))))))))))
    (lambda (b_0 stack_0)
      (if (vector? b_0)
        (if (eq? 'begin (unsafe-vector*-ref b_0 0))
          (let ((last_0 (sub1 (unsafe-vector*-length b_0))))
            (letrec*
             ((loop_3
               (|#%name|
                loop
                (lambda (i_0)
                  (begin
                    (let ((e_0 (unsafe-vector*-ref b_0 i_0)))
                      (if (= i_0 last_0)
                        (interpret_0 e_0 stack_0 #f)
                        (begin
                          (interpret_0 e_0 stack_0 #f)
                          (loop_3 (add1 i_0))))))))))
             (loop_3 1)))
          (interpret_0 b_0 stack_0 #f))
        (interpret_0 b_0 stack_0 #f)))))
(define count->mask
  (lambda (count_0 rest?_0)
    (if rest?_0
      (bitwise-xor -1 (sub1 (arithmetic-shift 1 (sub1 count_0))))
      (arithmetic-shift 1 count_0))))
(define matching-argument-count?
  (lambda (mask_0 len_0) (bitwise-bit-set? mask_0 len_0)))
(define linklet-bigger-than?
  (letrec ((body-leftover-size_0
            (|#%name|
             body-leftover-size
             (lambda (serializable?_0 body_0 size_0)
               (begin (begin (for-loop_0 serializable?_0 size_0 body_0))))))
           (for-loop_0
            (|#%name|
             for-loop
             (lambda (serializable?_0 size_0 lst_0)
               (begin
                 (if (not (null? (unwrap lst_0)))
                   (let ((e_0
                          (if (pair? (unwrap lst_0)) (wrap-car lst_0) lst_0)))
                     (let ((rest_0
                            (if (pair? (unwrap lst_0)) (wrap-cdr lst_0) null)))
                       (let ((e_1 e_0))
                         (if (<= size_0 0)
                           size_0
                           (let ((size_1
                                  (leftover-size_0
                                   serializable?_0
                                   e_1
                                   size_0)))
                             (begin
                               (for-loop_0 serializable?_0 size_1 rest_0)))))))
                   size_0)))))
           (for-loop_1
            (|#%name|
             for-loop
             (lambda (v_0 size_0 i_0)
               (begin
                 (if i_0
                   (call-with-values
                    (lambda () (hash-iterate-key+value v_0 i_0))
                    (case-lambda
                     ((k_0 v_1)
                      (if (<= size_0 0)
                        size_0
                        (let ((size_1
                               (s-expr-leftover-size_0
                                v_1
                                (s-expr-leftover-size_0 k_0 size_0))))
                          (next-k-proc_2 i_0 v_0 size_1))))
                     (args (raise-binding-result-arity-error 2 args))))
                   size_0)))))
           (for-loop_2
            (|#%name|
             for-loop
             (lambda (len_0 vec_0 size_0 pos_0)
               (begin
                 (if (unsafe-fx< pos_0 len_0)
                   (let ((v_0 (unsafe-vector-ref vec_0 pos_0)))
                     (if (<= size_0 0)
                       size_0
                       (let ((size_1 (s-expr-leftover-size_0 v_0 size_0)))
                         (next-k-proc_1 len_0 pos_0 vec_0 size_1))))
                   size_0)))))
           (leftover-size_0
            (|#%name|
             leftover-size
             (lambda (serializable?_0 e_0 size_0)
               (begin
                 (if (<= size_0 0)
                   0
                   (let ((hd_0
                          (let ((p_0 (unwrap e_0)))
                            (if (pair? p_0) (unwrap (car p_0)) #f))))
                     (if (if (eq? 'begin hd_0) #t #f)
                       (let ((body_0 (let ((d_0 (cdr (unwrap e_0)))) d_0)))
                         (body-leftover-size_0
                          serializable?_0
                          body_0
                          (sub1 size_0)))
                       (if (if (eq? 'define-values hd_0)
                             (let ((a_0 (cdr (unwrap e_0))))
                               (let ((p_0 (unwrap a_0)))
                                 (if (pair? p_0)
                                   (let ((a_1 (cdr p_0)))
                                     (let ((p_1 (unwrap a_1)))
                                       (if (pair? p_1)
                                         (let ((a_2 (cdr p_1)))
                                           (let ((app_0 (unwrap '())))
                                             (eq? app_0 (unwrap a_2))))
                                         #f)))
                                   #f)))
                             #f)
                         (let ((rhs_0
                                (let ((d_0 (cdr (unwrap e_0))))
                                  (let ((d_1 (cdr (unwrap d_0))))
                                    (let ((a_0 (car (unwrap d_1)))) a_0)))))
                           (leftover-size_0
                            serializable?_0
                            rhs_0
                            (sub1 size_0)))
                         (if (if (eq? 'lambda hd_0)
                               (let ((a_0 (cdr (unwrap e_0))))
                                 (let ((p_0 (unwrap a_0)))
                                   (if (pair? p_0) #t #f)))
                               #f)
                           (let ((body_0
                                  (let ((d_0 (cdr (unwrap e_0))))
                                    (let ((d_1 (cdr (unwrap d_0)))) d_1))))
                             (body-leftover-size_0
                              serializable?_0
                              body_0
                              (sub1 size_0)))
                           (if (if (eq? 'case-lambda hd_0)
                                 (let ((a_0 (cdr (unwrap e_0))))
                                   (if (wrap-list? a_0)
                                     (begin
                                       (letrec*
                                        ((for-loop_3
                                          (|#%name|
                                           for-loop
                                           (lambda (result_0 lst_0)
                                             (begin
                                               (if (not (null? (unwrap lst_0)))
                                                 (let ((v_0
                                                        (if (pair?
                                                             (unwrap lst_0))
                                                          (wrap-car lst_0)
                                                          lst_0)))
                                                   (let ((rest_0
                                                          (if (pair?
                                                               (unwrap lst_0))
                                                            (wrap-cdr lst_0)
                                                            null)))
                                                     (let ((v_1 v_0))
                                                       (let ((result_1
                                                              (let ((result_1
                                                                     (let ((p_0
                                                                            (unwrap
                                                                             v_1)))
                                                                       (if (pair?
                                                                            p_0)
                                                                         #t
                                                                         #f))))
                                                                (values
                                                                 result_1))))
                                                         (if (if (not
                                                                  (let ((x_0
                                                                         (list
                                                                          v_1)))
                                                                    (not
                                                                     result_1)))
                                                               #t
                                                               #f)
                                                           (for-loop_3
                                                            result_1
                                                            rest_0)
                                                           result_1)))))
                                                 result_0))))))
                                        (for-loop_3 #t a_0)))
                                     #f))
                                 #f)
                             (let ((bodys_0
                                    (let ((d_0 (cdr (unwrap e_0))))
                                      (let ((bodys_0
                                             (begin
                                               (letrec*
                                                ((for-loop_3
                                                  (|#%name|
                                                   for-loop
                                                   (lambda (bodys_0 lst_0)
                                                     (begin
                                                       (if (not
                                                            (null?
                                                             (unwrap lst_0)))
                                                         (let ((v_0
                                                                (if (pair?
                                                                     (unwrap
                                                                      lst_0))
                                                                  (wrap-car
                                                                   lst_0)
                                                                  lst_0)))
                                                           (let ((rest_0
                                                                  (if (pair?
                                                                       (unwrap
                                                                        lst_0))
                                                                    (wrap-cdr
                                                                     lst_0)
                                                                    null)))
                                                             (let ((v_1 v_0))
                                                               (let ((bodys_1
                                                                      (let ((bodys_1
                                                                             (let ((bodys1_0
                                                                                    (let ((d_1
                                                                                           (cdr
                                                                                            (unwrap
                                                                                             v_1))))
                                                                                      d_1)))
                                                                               (cons
                                                                                bodys1_0
                                                                                bodys_0))))
                                                                        (values
                                                                         bodys_1))))
                                                                 (for-loop_3
                                                                  bodys_1
                                                                  rest_0)))))
                                                         bodys_0))))))
                                                (for-loop_3 null d_0)))))
                                        (reverse$1 bodys_0)))))
                               (body-leftover-size_0
                                serializable?_0
                                bodys_0
                                (sub1 size_0)))
                             (if (if (eq? 'let-values hd_0)
                                   (let ((a_0 (cdr (unwrap e_0))))
                                     (let ((p_0 (unwrap a_0)))
                                       (if (pair? p_0)
                                         (if (let ((a_1 (car p_0)))
                                               (if (wrap-list? a_1)
                                                 (begin
                                                   (letrec*
                                                    ((for-loop_3
                                                      (|#%name|
                                                       for-loop
                                                       (lambda (result_0 lst_0)
                                                         (begin
                                                           (if (not
                                                                (null?
                                                                 (unwrap
                                                                  lst_0)))
                                                             (let ((v_0
                                                                    (if (pair?
                                                                         (unwrap
                                                                          lst_0))
                                                                      (wrap-car
                                                                       lst_0)
                                                                      lst_0)))
                                                               (let ((rest_0
                                                                      (if (pair?
                                                                           (unwrap
                                                                            lst_0))
                                                                        (wrap-cdr
                                                                         lst_0)
                                                                        null)))
                                                                 (let ((v_1
                                                                        v_0))
                                                                   (let ((result_1
                                                                          (let ((result_1
                                                                                 (let ((p_1
                                                                                        (unwrap
                                                                                         v_1)))
                                                                                   (if (pair?
                                                                                        p_1)
                                                                                     (let ((a_2
                                                                                            (cdr
                                                                                             p_1)))
                                                                                       (let ((p_2
                                                                                              (unwrap
                                                                                               a_2)))
                                                                                         (if (pair?
                                                                                              p_2)
                                                                                           (let ((a_3
                                                                                                  (cdr
                                                                                                   p_2)))
                                                                                             (let ((app_0
                                                                                                    (unwrap
                                                                                                     '())))
                                                                                               (eq?
                                                                                                app_0
                                                                                                (unwrap
                                                                                                 a_3))))
                                                                                           #f)))
                                                                                     #f))))
                                                                            (values
                                                                             result_1))))
                                                                     (if (if (not
                                                                              (let ((x_0
                                                                                     (list
                                                                                      v_1)))
                                                                                (not
                                                                                 result_1)))
                                                                           #t
                                                                           #f)
                                                                       (for-loop_3
                                                                        result_1
                                                                        rest_0)
                                                                       result_1)))))
                                                             result_0))))))
                                                    (for-loop_3 #t a_1)))
                                                 #f))
                                           #t
                                           #f)
                                         #f)))
                                   #f)
                               (call-with-values
                                (lambda ()
                                  (let ((d_0 (cdr (unwrap e_0))))
                                    (let ((p_0 (unwrap d_0)))
                                      (let ((rhss_0
                                             (let ((a_0 (car p_0)))
                                               (let ((rhss_0
                                                      (begin
                                                        (letrec*
                                                         ((for-loop_3
                                                           (|#%name|
                                                            for-loop
                                                            (lambda (rhss_0
                                                                     lst_0)
                                                              (begin
                                                                (if (not
                                                                     (null?
                                                                      (unwrap
                                                                       lst_0)))
                                                                  (let ((v_0
                                                                         (if (pair?
                                                                              (unwrap
                                                                               lst_0))
                                                                           (wrap-car
                                                                            lst_0)
                                                                           lst_0)))
                                                                    (let ((rest_0
                                                                           (if (pair?
                                                                                (unwrap
                                                                                 lst_0))
                                                                             (wrap-cdr
                                                                              lst_0)
                                                                             null)))
                                                                      (let ((v_1
                                                                             v_0))
                                                                        (let ((rhss_1
                                                                               (let ((rhss_1
                                                                                      (let ((rhss2_0
                                                                                             (let ((d_1
                                                                                                    (cdr
                                                                                                     (unwrap
                                                                                                      v_1))))
                                                                                               (let ((a_1
                                                                                                      (car
                                                                                                       (unwrap
                                                                                                        d_1))))
                                                                                                 a_1))))
                                                                                        (cons
                                                                                         rhss2_0
                                                                                         rhss_0))))
                                                                                 (values
                                                                                  rhss_1))))
                                                                          (for-loop_3
                                                                           rhss_1
                                                                           rest_0)))))
                                                                  rhss_0))))))
                                                         (for-loop_3
                                                          null
                                                          a_0)))))
                                                 (reverse$1 rhss_0)))))
                                        (let ((body_0
                                               (let ((d_1 (cdr p_0))) d_1)))
                                          (let ((rhss_1 rhss_0))
                                            (values rhss_1 body_0)))))))
                                (case-lambda
                                 ((rhss_0 body_0)
                                  (body-leftover-size_0
                                   serializable?_0
                                   (cons rhss_0 body_0)
                                   (sub1 size_0)))
                                 (args
                                  (raise-binding-result-arity-error 2 args))))
                               (if (if (eq? 'letrec-values hd_0)
                                     (let ((a_0 (cdr (unwrap e_0))))
                                       (let ((p_0 (unwrap a_0)))
                                         (if (pair? p_0)
                                           (if (let ((a_1 (car p_0)))
                                                 (if (wrap-list? a_1)
                                                   (begin
                                                     (letrec*
                                                      ((for-loop_3
                                                        (|#%name|
                                                         for-loop
                                                         (lambda (result_0
                                                                  lst_0)
                                                           (begin
                                                             (if (not
                                                                  (null?
                                                                   (unwrap
                                                                    lst_0)))
                                                               (let ((v_0
                                                                      (if (pair?
                                                                           (unwrap
                                                                            lst_0))
                                                                        (wrap-car
                                                                         lst_0)
                                                                        lst_0)))
                                                                 (let ((rest_0
                                                                        (if (pair?
                                                                             (unwrap
                                                                              lst_0))
                                                                          (wrap-cdr
                                                                           lst_0)
                                                                          null)))
                                                                   (let ((v_1
                                                                          v_0))
                                                                     (let ((result_1
                                                                            (let ((result_1
                                                                                   (let ((p_1
                                                                                          (unwrap
                                                                                           v_1)))
                                                                                     (if (pair?
                                                                                          p_1)
                                                                                       (let ((a_2
                                                                                              (cdr
                                                                                               p_1)))
                                                                                         (let ((p_2
                                                                                                (unwrap
                                                                                                 a_2)))
                                                                                           (if (pair?
                                                                                                p_2)
                                                                                             (let ((a_3
                                                                                                    (cdr
                                                                                                     p_2)))
                                                                                               (let ((app_0
                                                                                                      (unwrap
                                                                                                       '())))
                                                                                                 (eq?
                                                                                                  app_0
                                                                                                  (unwrap
                                                                                                   a_3))))
                                                                                             #f)))
                                                                                       #f))))
                                                                              (values
                                                                               result_1))))
                                                                       (if (if (not
                                                                                (let ((x_0
                                                                                       (list
                                                                                        v_1)))
                                                                                  (not
                                                                                   result_1)))
                                                                             #t
                                                                             #f)
                                                                         (for-loop_3
                                                                          result_1
                                                                          rest_0)
                                                                         result_1)))))
                                                               result_0))))))
                                                      (for-loop_3 #t a_1)))
                                                   #f))
                                             #t
                                             #f)
                                           #f)))
                                     #f)
                                 (call-with-values
                                  (lambda ()
                                    (let ((d_0 (cdr (unwrap e_0))))
                                      (let ((p_0 (unwrap d_0)))
                                        (let ((rhss_0
                                               (let ((a_0 (car p_0)))
                                                 (let ((rhss_0
                                                        (begin
                                                          (letrec*
                                                           ((for-loop_3
                                                             (|#%name|
                                                              for-loop
                                                              (lambda (rhss_0
                                                                       lst_0)
                                                                (begin
                                                                  (if (not
                                                                       (null?
                                                                        (unwrap
                                                                         lst_0)))
                                                                    (let ((v_0
                                                                           (if (pair?
                                                                                (unwrap
                                                                                 lst_0))
                                                                             (wrap-car
                                                                              lst_0)
                                                                             lst_0)))
                                                                      (let ((rest_0
                                                                             (if (pair?
                                                                                  (unwrap
                                                                                   lst_0))
                                                                               (wrap-cdr
                                                                                lst_0)
                                                                               null)))
                                                                        (let ((v_1
                                                                               v_0))
                                                                          (let ((rhss_1
                                                                                 (let ((rhss_1
                                                                                        (let ((rhss3_0
                                                                                               (let ((d_1
                                                                                                      (cdr
                                                                                                       (unwrap
                                                                                                        v_1))))
                                                                                                 (let ((a_1
                                                                                                        (car
                                                                                                         (unwrap
                                                                                                          d_1))))
                                                                                                   a_1))))
                                                                                          (cons
                                                                                           rhss3_0
                                                                                           rhss_0))))
                                                                                   (values
                                                                                    rhss_1))))
                                                                            (for-loop_3
                                                                             rhss_1
                                                                             rest_0)))))
                                                                    rhss_0))))))
                                                           (for-loop_3
                                                            null
                                                            a_0)))))
                                                   (reverse$1 rhss_0)))))
                                          (let ((body_0
                                                 (let ((d_1 (cdr p_0))) d_1)))
                                            (let ((rhss_1 rhss_0))
                                              (values rhss_1 body_0)))))))
                                  (case-lambda
                                   ((rhss_0 body_0)
                                    (body-leftover-size_0
                                     serializable?_0
                                     (cons rhss_0 body_0)
                                     (sub1 size_0)))
                                   (args
                                    (raise-binding-result-arity-error
                                     2
                                     args))))
                                 (if (if (eq? 'if hd_0)
                                       (let ((a_0 (cdr (unwrap e_0))))
                                         (let ((p_0 (unwrap a_0)))
                                           (if (pair? p_0)
                                             (let ((a_1 (cdr p_0)))
                                               (let ((p_1 (unwrap a_1)))
                                                 (if (pair? p_1)
                                                   (let ((a_2 (cdr p_1)))
                                                     (let ((p_2 (unwrap a_2)))
                                                       (if (pair? p_2)
                                                         (let ((a_3 (cdr p_2)))
                                                           (let ((app_0
                                                                  (unwrap
                                                                   '())))
                                                             (eq?
                                                              app_0
                                                              (unwrap a_3))))
                                                         #f)))
                                                   #f)))
                                             #f)))
                                       #f)
                                   (call-with-values
                                    (lambda ()
                                      (let ((d_0 (cdr (unwrap e_0))))
                                        (let ((p_0 (unwrap d_0)))
                                          (let ((tst_0
                                                 (let ((a_0 (car p_0))) a_0)))
                                            (call-with-values
                                             (lambda ()
                                               (let ((d_1 (cdr p_0)))
                                                 (let ((p_1 (unwrap d_1)))
                                                   (let ((thn_0
                                                          (let ((a_0
                                                                 (car p_1)))
                                                            a_0)))
                                                     (let ((els_0
                                                            (let ((d_2
                                                                   (cdr p_1)))
                                                              (let ((a_0
                                                                     (car
                                                                      (unwrap
                                                                       d_2))))
                                                                a_0))))
                                                       (let ((thn_1 thn_0))
                                                         (values
                                                          thn_1
                                                          els_0)))))))
                                             (case-lambda
                                              ((thn_0 els_0)
                                               (let ((tst_1 tst_0))
                                                 (values tst_1 thn_0 els_0)))
                                              (args
                                               (raise-binding-result-arity-error
                                                2
                                                args))))))))
                                    (case-lambda
                                     ((tst_0 thn_0 els_0)
                                      (leftover-size_0
                                       serializable?_0
                                       els_0
                                       (leftover-size_0
                                        serializable?_0
                                        thn_0
                                        (leftover-size_0
                                         serializable?_0
                                         tst_0
                                         (sub1 size_0)))))
                                     (args
                                      (raise-binding-result-arity-error
                                       3
                                       args))))
                                   (if (if (eq? 'with-continuation-mark* hd_0)
                                         (let ((a_0 (cdr (unwrap e_0))))
                                           (let ((p_0 (unwrap a_0)))
                                             (if (pair? p_0)
                                               (let ((a_1 (cdr p_0)))
                                                 (let ((p_1 (unwrap a_1)))
                                                   (if (pair? p_1)
                                                     (let ((a_2 (cdr p_1)))
                                                       (let ((p_2
                                                              (unwrap a_2)))
                                                         (if (pair? p_2)
                                                           (let ((a_3
                                                                  (cdr p_2)))
                                                             (let ((p_3
                                                                    (unwrap
                                                                     a_3)))
                                                               (if (pair? p_3)
                                                                 (let ((a_4
                                                                        (cdr
                                                                         p_3)))
                                                                   (let ((app_0
                                                                          (unwrap
                                                                           '())))
                                                                     (eq?
                                                                      app_0
                                                                      (unwrap
                                                                       a_4))))
                                                                 #f)))
                                                           #f)))
                                                     #f)))
                                               #f)))
                                         #f)
                                     (call-with-values
                                      (lambda ()
                                        (let ((d_0 (cdr (unwrap e_0))))
                                          (let ((d_1 (cdr (unwrap d_0))))
                                            (let ((p_0 (unwrap d_1)))
                                              (let ((key_0
                                                     (let ((a_0 (car p_0)))
                                                       a_0)))
                                                (call-with-values
                                                 (lambda ()
                                                   (let ((d_2 (cdr p_0)))
                                                     (let ((p_1 (unwrap d_2)))
                                                       (let ((val_0
                                                              (let ((a_0
                                                                     (car
                                                                      p_1)))
                                                                a_0)))
                                                         (let ((body_0
                                                                (let ((d_3
                                                                       (cdr
                                                                        p_1)))
                                                                  (let ((a_0
                                                                         (car
                                                                          (unwrap
                                                                           d_3))))
                                                                    a_0))))
                                                           (let ((val_1 val_0))
                                                             (values
                                                              val_1
                                                              body_0)))))))
                                                 (case-lambda
                                                  ((val_0 body_0)
                                                   (let ((key_1 key_0))
                                                     (values
                                                      key_1
                                                      val_0
                                                      body_0)))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    2
                                                    args)))))))))
                                      (case-lambda
                                       ((key_0 val_0 body_0)
                                        (leftover-size_0
                                         serializable?_0
                                         body_0
                                         (leftover-size_0
                                          serializable?_0
                                          val_0
                                          (leftover-size_0
                                           serializable?_0
                                           key_0
                                           (sub1 size_0)))))
                                       (args
                                        (raise-binding-result-arity-error
                                         3
                                         args))))
                                     (if (if (eq? 'begin0 hd_0) #t #f)
                                       (let ((body_0
                                              (let ((d_0 (cdr (unwrap e_0))))
                                                d_0)))
                                         (body-leftover-size_0
                                          serializable?_0
                                          body_0
                                          (sub1 size_0)))
                                       (if (if (eq? 'quote hd_0)
                                             (let ((a_0 (cdr (unwrap e_0))))
                                               (let ((p_0 (unwrap a_0)))
                                                 (if (pair? p_0)
                                                   (let ((a_1 (cdr p_0)))
                                                     (let ((app_0
                                                            (unwrap '())))
                                                       (eq?
                                                        app_0
                                                        (unwrap a_1))))
                                                   #f)))
                                             #f)
                                         (let ((v_0
                                                (let ((d_0 (cdr (unwrap e_0))))
                                                  (let ((a_0
                                                         (car (unwrap d_0))))
                                                    a_0))))
                                           (if (if serializable?_0
                                                 (lift-quoted? v_0 #f #t)
                                                 #f)
                                             (s-expr-leftover-size_0
                                              v_0
                                              size_0)
                                             (sub1 size_0)))
                                         (if (if (eq? 'set! hd_0)
                                               (let ((a_0 (cdr (unwrap e_0))))
                                                 (let ((p_0 (unwrap a_0)))
                                                   (if (pair? p_0)
                                                     (let ((a_1 (cdr p_0)))
                                                       (let ((p_1
                                                              (unwrap a_1)))
                                                         (if (pair? p_1)
                                                           (let ((a_2
                                                                  (cdr p_1)))
                                                             (let ((app_0
                                                                    (unwrap
                                                                     '())))
                                                               (eq?
                                                                app_0
                                                                (unwrap a_2))))
                                                           #f)))
                                                     #f)))
                                               #f)
                                           (call-with-values
                                            (lambda ()
                                              (let ((d_0 (cdr (unwrap e_0))))
                                                (let ((p_0 (unwrap d_0)))
                                                  (let ((id_0
                                                         (let ((a_0 (car p_0)))
                                                           a_0)))
                                                    (let ((rhs_0
                                                           (let ((d_1
                                                                  (cdr p_0)))
                                                             (let ((a_0
                                                                    (car
                                                                     (unwrap
                                                                      d_1))))
                                                               a_0))))
                                                      (let ((id_1 id_0))
                                                        (values
                                                         id_1
                                                         rhs_0)))))))
                                            (case-lambda
                                             ((id_0 rhs_0)
                                              (leftover-size_0
                                               serializable?_0
                                               rhs_0
                                               (sub1 size_0)))
                                             (args
                                              (raise-binding-result-arity-error
                                               2
                                               args))))
                                           (if (if (eq?
                                                    '|#%variable-reference|
                                                    hd_0)
                                                 #t
                                                 #f)
                                             (sub1 size_0)
                                             (if (let ((p_0 (unwrap e_0)))
                                                   (if (pair? p_0) #t #f))
                                               (body-leftover-size_0
                                                serializable?_0
                                                e_0
                                                size_0)
                                               (sub1 size_0))))))))))))))))))))
           (next-k-proc_0
            (|#%name|
             next-k-proc
             (lambda (rest_0 serializable?_0 size_0)
               (begin (for-loop_0 serializable?_0 size_0 rest_0)))))
           (next-k-proc_1
            (|#%name|
             next-k-proc
             (lambda (len_0 pos_0 vec_0 size_0)
               (begin (for-loop_2 len_0 vec_0 size_0 (unsafe-fx+ 1 pos_0))))))
           (next-k-proc_2
            (|#%name|
             next-k-proc
             (lambda (i_0 v_0 size_0)
               (begin (for-loop_1 v_0 size_0 (hash-iterate-next v_0 i_0))))))
           (s-expr-leftover-size_0
            (|#%name|
             s-expr-leftover-size
             (lambda (v_0 size_0)
               (begin
                 (if (<= size_0 0)
                   0
                   (if (pair? v_0)
                     (let ((app_0 (cdr v_0)))
                       (s-expr-leftover-size_0
                        app_0
                        (let ((app_1 (car v_0)))
                          (s-expr-leftover-size_0 app_1 (sub1 size_0)))))
                     (if (box? v_0)
                       (let ((app_0 (unbox v_0)))
                         (s-expr-leftover-size_0 app_0 (sub1 size_0)))
                       (if (vector? v_0)
                         (call-with-values
                          (lambda ()
                            (begin
                              (check-vector v_0)
                              (values v_0 (unsafe-vector-length v_0))))
                          (case-lambda
                           ((vec_0 len_0)
                            (begin
                              #f
                              (for-loop_2 len_0 vec_0 (sub1 size_0) 0)))
                           (args (raise-binding-result-arity-error 2 args))))
                         (if (prefab-struct-key v_0)
                           (s-expr-leftover-size_0 (struct->vector v_0) size_0)
                           (if (hash? v_0)
                             (begin
                               (let ((app_0 (sub1 size_0)))
                                 (for-loop_1
                                  v_0
                                  app_0
                                  (hash-iterate-first v_0))))
                             (sub1 size_0))))))))))))
    (lambda (e_0 size_0 serializable?_0)
      (let ((hd_0
             (let ((p_0 (unwrap e_0)))
               (if (pair? p_0) (unwrap (car p_0)) #f))))
        (if (if (eq? 'linklet hd_0)
              (let ((a_0 (cdr (unwrap e_0))))
                (let ((p_0 (unwrap a_0)))
                  (if (pair? p_0)
                    (let ((a_1 (cdr p_0)))
                      (let ((p_1 (unwrap a_1))) (if (pair? p_1) #t #f)))
                    #f)))
              #f)
          (let ((body_0
                 (let ((d_0 (cdr (unwrap e_0))))
                   (let ((d_1 (cdr (unwrap d_0))))
                     (let ((d_2 (cdr (unwrap d_1)))) d_2)))))
            (<= (body-leftover-size_0 serializable?_0 body_0 size_0) 0))
          (error 'match "failed ~e" e_0))))))
(define ->fasl (lambda (v_0) (s-exp->fasl.1 #f #f #f v_0 #f)))
(define fasl-> (lambda (f_0) (fasl->s-exp.1 #t unsafe-undefined f_0)))
