(define hash2610 (hasheq))
(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 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)
    (begin-unsafe
     (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: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 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
        (|#%name|
         generic-sort
         (lambda (A_0 less-than?_0 n_0)
           (begin
             (let ((n/2-_0 (unsafe-fxrshift n_0 1)))
               (let ((n/2+_0 (unsafe-fx- n_0 n/2-_0)))
                 (letrec*
                  ((copying-mergesort_0
                    (|#%name|
                     copying-mergesort
                     (lambda (Alo_0 Blo_0 n_1)
                       (begin
                         (if (unsafe-fx= n_1 1)
                           (unsafe-vector-set!
                            A_0
                            Blo_0
                            (unsafe-vector-ref A_0 Alo_0))
                           (if (unsafe-fx= n_1 2)
                             (let ((x_0 (unsafe-vector-ref A_0 Alo_0)))
                               (let ((y_0
                                      (unsafe-vector-ref
                                       A_0
                                       (unsafe-fx+ Alo_0 1))))
                                 (let ((x_1 x_0))
                                   (if (|#%app| less-than?_0 y_0 x_1)
                                     (begin
                                       (unsafe-vector-set! A_0 Blo_0 y_0)
                                       (unsafe-vector-set!
                                        A_0
                                        (unsafe-fx+ Blo_0 1)
                                        x_1))
                                     (begin
                                       (unsafe-vector-set! A_0 Blo_0 x_1)
                                       (unsafe-vector-set!
                                        A_0
                                        (unsafe-fx+ Blo_0 1)
                                        y_0))))))
                             (if (unsafe-fx< n_1 16)
                               (begin
                                 (unsafe-vector-set!
                                  A_0
                                  Blo_0
                                  (unsafe-vector-ref A_0 Alo_0))
                                 (letrec*
                                  ((iloop_0
                                    (|#%name|
                                     iloop
                                     (lambda (i_0)
                                       (begin
                                         (if (unsafe-fx< i_0 n_1)
                                           (let ((ref-i_0
                                                  (unsafe-vector-ref
                                                   A_0
                                                   (unsafe-fx+ Alo_0 i_0))))
                                             (letrec*
                                              ((jloop_0
                                                (|#%name|
                                                 jloop
                                                 (lambda (j_0)
                                                   (begin
                                                     (let ((ref-j-1_0
                                                            (unsafe-vector-ref
                                                             A_0
                                                             (unsafe-fx-
                                                              j_0
                                                              1))))
                                                       (if (if (unsafe-fx<
                                                                Blo_0
                                                                j_0)
                                                             (|#%app|
                                                              less-than?_0
                                                              ref-i_0
                                                              ref-j-1_0)
                                                             #f)
                                                         (begin
                                                           (unsafe-vector-set!
                                                            A_0
                                                            j_0
                                                            ref-j-1_0)
                                                           (jloop_0
                                                            (unsafe-fx-
                                                             j_0
                                                             1)))
                                                         (begin
                                                           (unsafe-vector-set!
                                                            A_0
                                                            j_0
                                                            ref-i_0)
                                                           (iloop_0
                                                            (unsafe-fx+
                                                             i_0
                                                             1))))))))))
                                              (jloop_0
                                               (unsafe-fx+ Blo_0 i_0))))
                                           (void)))))))
                                  (iloop_0 1)))
                               (let ((n/2-_1 (unsafe-fxrshift n_1 1)))
                                 (let ((n/2+_1 (unsafe-fx- n_1 n/2-_1)))
                                   (let ((Amid1_0 (unsafe-fx+ Alo_0 n/2-_1)))
                                     (let ((Amid2_0 (unsafe-fx+ Alo_0 n/2+_1)))
                                       (let ((Bmid1_0
                                              (unsafe-fx+ Blo_0 n/2-_1)))
                                         (begin
                                           (copying-mergesort_0
                                            Amid1_0
                                            Bmid1_0
                                            n/2+_1)
                                           (copying-mergesort_0
                                            Alo_0
                                            Amid2_0
                                            n/2-_1)
                                           (let ((b2_0 (unsafe-fx+ Blo_0 n_1)))
                                             (letrec*
                                              ((loop_0
                                                (|#%name|
                                                 loop
                                                 (lambda (a1_0 b1_0 c1_0)
                                                   (begin
                                                     (let ((x_0
                                                            (unsafe-vector-ref
                                                             A_0
                                                             a1_0)))
                                                       (let ((y_0
                                                              (unsafe-vector-ref
                                                               A_0
                                                               b1_0)))
                                                         (let ((x_1 x_0))
                                                           (if (not
                                                                (|#%app|
                                                                 less-than?_0
                                                                 y_0
                                                                 x_1))
                                                             (begin
                                                               (unsafe-vector-set!
                                                                A_0
                                                                c1_0
                                                                x_1)
                                                               (let ((a1_1
                                                                      (unsafe-fx+
                                                                       a1_0
                                                                       1)))
                                                                 (let ((c1_1
                                                                        (unsafe-fx+
                                                                         c1_0
                                                                         1)))
                                                                   (if (unsafe-fx<
                                                                        c1_1
                                                                        b1_0)
                                                                     (loop_0
                                                                      a1_1
                                                                      b1_0
                                                                      c1_1)
                                                                     (void)))))
                                                             (begin
                                                               (unsafe-vector-set!
                                                                A_0
                                                                c1_0
                                                                y_0)
                                                               (let ((b1_1
                                                                      (unsafe-fx+
                                                                       b1_0
                                                                       1)))
                                                                 (let ((c1_1
                                                                        (unsafe-fx+
                                                                         c1_0
                                                                         1)))
                                                                   (if (unsafe-fx<=
                                                                        b2_0
                                                                        b1_1)
                                                                     (letrec*
                                                                      ((loop_1
                                                                        (|#%name|
                                                                         loop
                                                                         (lambda (a1_1
                                                                                  c1_2)
                                                                           (begin
                                                                             (if (unsafe-fx<
                                                                                  c1_2
                                                                                  b1_1)
                                                                               (begin
                                                                                 (unsafe-vector-set!
                                                                                  A_0
                                                                                  c1_2
                                                                                  (unsafe-vector-ref
                                                                                   A_0
                                                                                   a1_1))
                                                                                 (loop_1
                                                                                  (unsafe-fx+
                                                                                   a1_1
                                                                                   1)
                                                                                  (unsafe-fx+
                                                                                   c1_2
                                                                                   1)))
                                                                               (void)))))))
                                                                      (loop_1
                                                                       a1_0
                                                                       c1_1))
                                                                     (loop_0
                                                                      a1_0
                                                                      b1_1
                                                                      c1_1))))))))))))))
                                              (loop_0
                                               Amid2_0
                                               Bmid1_0
                                               Blo_0)))))))))))))))))
                  (begin
                    (copying-mergesort_0 n/2-_0 n_0 n/2+_0)
                    (if (zero? n/2-_0)
                      (void)
                      (copying-mergesort_0 0 n/2+_0 n/2-_0))
                    (letrec*
                     ((loop_0
                       (|#%name|
                        loop
                        (lambda (a1_0 b1_0 c1_0)
                          (begin
                            (let ((x_0 (unsafe-vector-ref A_0 a1_0)))
                              (let ((y_0 (unsafe-vector-ref A_0 b1_0)))
                                (let ((x_1 x_0))
                                  (if (|#%app| less-than?_0 x_1 y_0)
                                    (begin
                                      (unsafe-vector-set! A_0 c1_0 x_1)
                                      (let ((a1_1 (unsafe-fx+ a1_0 1)))
                                        (let ((c1_1 (unsafe-fx+ c1_0 1)))
                                          (if (unsafe-fx< c1_1 b1_0)
                                            (loop_0 a1_1 b1_0 c1_1)
                                            (void)))))
                                    (begin
                                      (unsafe-vector-set! A_0 c1_0 y_0)
                                      (let ((b1_1 (unsafe-fx+ b1_0 1)))
                                        (let ((c1_1 (unsafe-fx+ c1_0 1)))
                                          (if (unsafe-fx<= n_0 b1_1)
                                            (letrec*
                                             ((loop_1
                                               (|#%name|
                                                loop
                                                (lambda (a1_1 c1_2)
                                                  (begin
                                                    (if (unsafe-fx< c1_2 b1_1)
                                                      (begin
                                                        (unsafe-vector-set!
                                                         A_0
                                                         c1_2
                                                         (unsafe-vector-ref
                                                          A_0
                                                          a1_1))
                                                        (loop_1
                                                         (unsafe-fx+ a1_1 1)
                                                         (unsafe-fx+ c1_2 1)))
                                                      (void)))))))
                                             (loop_1 a1_0 c1_1))
                                            (loop_0
                                             a1_0
                                             b1_1
                                             c1_1))))))))))))))
                     (loop_0 n_0 n/2+_0 0)))))))))))
   (let ((generic-sort/key_0
          (|#%name|
           generic-sort/key
           (lambda (A_0 less-than?_0 n_0 key_0)
             (begin
               (let ((n/2-_0 (unsafe-fxrshift n_0 1)))
                 (let ((n/2+_0 (unsafe-fx- n_0 n/2-_0)))
                   (letrec*
                    ((copying-mergesort_0
                      (|#%name|
                       copying-mergesort
                       (lambda (Alo_0 Blo_0 n_1)
                         (begin
                           (if (unsafe-fx= n_1 1)
                             (unsafe-vector-set!
                              A_0
                              Blo_0
                              (unsafe-vector-ref A_0 Alo_0))
                             (if (unsafe-fx= n_1 2)
                               (let ((x_0 (unsafe-vector-ref A_0 Alo_0)))
                                 (let ((y_0
                                        (unsafe-vector-ref
                                         A_0
                                         (unsafe-fx+ Alo_0 1))))
                                   (let ((x_1 x_0))
                                     (if (if key_0
                                           (let ((app_0 (|#%app| key_0 y_0)))
                                             (|#%app|
                                              less-than?_0
                                              app_0
                                              (|#%app| key_0 x_1)))
                                           (|#%app| less-than?_0 y_0 x_1))
                                       (begin
                                         (unsafe-vector-set! A_0 Blo_0 y_0)
                                         (unsafe-vector-set!
                                          A_0
                                          (unsafe-fx+ Blo_0 1)
                                          x_1))
                                       (begin
                                         (unsafe-vector-set! A_0 Blo_0 x_1)
                                         (unsafe-vector-set!
                                          A_0
                                          (unsafe-fx+ Blo_0 1)
                                          y_0))))))
                               (if (unsafe-fx< n_1 16)
                                 (begin
                                   (unsafe-vector-set!
                                    A_0
                                    Blo_0
                                    (unsafe-vector-ref A_0 Alo_0))
                                   (letrec*
                                    ((iloop_0
                                      (|#%name|
                                       iloop
                                       (lambda (i_0)
                                         (begin
                                           (if (unsafe-fx< i_0 n_1)
                                             (let ((ref-i_0
                                                    (unsafe-vector-ref
                                                     A_0
                                                     (unsafe-fx+ Alo_0 i_0))))
                                               (letrec*
                                                ((jloop_0
                                                  (|#%name|
                                                   jloop
                                                   (lambda (j_0)
                                                     (begin
                                                       (let ((ref-j-1_0
                                                              (unsafe-vector-ref
                                                               A_0
                                                               (unsafe-fx-
                                                                j_0
                                                                1))))
                                                         (if (if (unsafe-fx<
                                                                  Blo_0
                                                                  j_0)
                                                               (if key_0
                                                                 (let ((app_0
                                                                        (|#%app|
                                                                         key_0
                                                                         ref-i_0)))
                                                                   (|#%app|
                                                                    less-than?_0
                                                                    app_0
                                                                    (|#%app|
                                                                     key_0
                                                                     ref-j-1_0)))
                                                                 (|#%app|
                                                                  less-than?_0
                                                                  ref-i_0
                                                                  ref-j-1_0))
                                                               #f)
                                                           (begin
                                                             (unsafe-vector-set!
                                                              A_0
                                                              j_0
                                                              ref-j-1_0)
                                                             (jloop_0
                                                              (unsafe-fx-
                                                               j_0
                                                               1)))
                                                           (begin
                                                             (unsafe-vector-set!
                                                              A_0
                                                              j_0
                                                              ref-i_0)
                                                             (iloop_0
                                                              (unsafe-fx+
                                                               i_0
                                                               1))))))))))
                                                (jloop_0
                                                 (unsafe-fx+ Blo_0 i_0))))
                                             (void)))))))
                                    (iloop_0 1)))
                                 (let ((n/2-_1 (unsafe-fxrshift n_1 1)))
                                   (let ((n/2+_1 (unsafe-fx- n_1 n/2-_1)))
                                     (let ((Amid1_0 (unsafe-fx+ Alo_0 n/2-_1)))
                                       (let ((Amid2_0
                                              (unsafe-fx+ Alo_0 n/2+_1)))
                                         (let ((Bmid1_0
                                                (unsafe-fx+ Blo_0 n/2-_1)))
                                           (begin
                                             (copying-mergesort_0
                                              Amid1_0
                                              Bmid1_0
                                              n/2+_1)
                                             (copying-mergesort_0
                                              Alo_0
                                              Amid2_0
                                              n/2-_1)
                                             (let ((b2_0
                                                    (unsafe-fx+ Blo_0 n_1)))
                                               (letrec*
                                                ((loop_0
                                                  (|#%name|
                                                   loop
                                                   (lambda (a1_0 b1_0 c1_0)
                                                     (begin
                                                       (let ((x_0
                                                              (unsafe-vector-ref
                                                               A_0
                                                               a1_0)))
                                                         (let ((y_0
                                                                (unsafe-vector-ref
                                                                 A_0
                                                                 b1_0)))
                                                           (let ((x_1 x_0))
                                                             (if (not
                                                                  (if key_0
                                                                    (let ((app_0
                                                                           (|#%app|
                                                                            key_0
                                                                            y_0)))
                                                                      (|#%app|
                                                                       less-than?_0
                                                                       app_0
                                                                       (|#%app|
                                                                        key_0
                                                                        x_1)))
                                                                    (|#%app|
                                                                     less-than?_0
                                                                     y_0
                                                                     x_1)))
                                                               (begin
                                                                 (unsafe-vector-set!
                                                                  A_0
                                                                  c1_0
                                                                  x_1)
                                                                 (let ((a1_1
                                                                        (unsafe-fx+
                                                                         a1_0
                                                                         1)))
                                                                   (let ((c1_1
                                                                          (unsafe-fx+
                                                                           c1_0
                                                                           1)))
                                                                     (if (unsafe-fx<
                                                                          c1_1
                                                                          b1_0)
                                                                       (loop_0
                                                                        a1_1
                                                                        b1_0
                                                                        c1_1)
                                                                       (void)))))
                                                               (begin
                                                                 (unsafe-vector-set!
                                                                  A_0
                                                                  c1_0
                                                                  y_0)
                                                                 (let ((b1_1
                                                                        (unsafe-fx+
                                                                         b1_0
                                                                         1)))
                                                                   (let ((c1_1
                                                                          (unsafe-fx+
                                                                           c1_0
                                                                           1)))
                                                                     (if (unsafe-fx<=
                                                                          b2_0
                                                                          b1_1)
                                                                       (letrec*
                                                                        ((loop_1
                                                                          (|#%name|
                                                                           loop
                                                                           (lambda (a1_1
                                                                                    c1_2)
                                                                             (begin
                                                                               (if (unsafe-fx<
                                                                                    c1_2
                                                                                    b1_1)
                                                                                 (begin
                                                                                   (unsafe-vector-set!
                                                                                    A_0
                                                                                    c1_2
                                                                                    (unsafe-vector-ref
                                                                                     A_0
                                                                                     a1_1))
                                                                                   (loop_1
                                                                                    (unsafe-fx+
                                                                                     a1_1
                                                                                     1)
                                                                                    (unsafe-fx+
                                                                                     c1_2
                                                                                     1)))
                                                                                 (void)))))))
                                                                        (loop_1
                                                                         a1_0
                                                                         c1_1))
                                                                       (loop_0
                                                                        a1_0
                                                                        b1_1
                                                                        c1_1))))))))))))))
                                                (loop_0
                                                 Amid2_0
                                                 Bmid1_0
                                                 Blo_0)))))))))))))))))
                    (begin
                      (copying-mergesort_0 n/2-_0 n_0 n/2+_0)
                      (if (zero? n/2-_0)
                        (void)
                        (copying-mergesort_0 0 n/2+_0 n/2-_0))
                      (letrec*
                       ((loop_0
                         (|#%name|
                          loop
                          (lambda (a1_0 b1_0 c1_0)
                            (begin
                              (let ((x_0 (unsafe-vector-ref A_0 a1_0)))
                                (let ((y_0 (unsafe-vector-ref A_0 b1_0)))
                                  (let ((x_1 x_0))
                                    (if (if key_0
                                          (let ((app_0 (|#%app| key_0 x_1)))
                                            (|#%app|
                                             less-than?_0
                                             app_0
                                             (|#%app| key_0 y_0)))
                                          (|#%app| less-than?_0 x_1 y_0))
                                      (begin
                                        (unsafe-vector-set! A_0 c1_0 x_1)
                                        (let ((a1_1 (unsafe-fx+ a1_0 1)))
                                          (let ((c1_1 (unsafe-fx+ c1_0 1)))
                                            (if (unsafe-fx< c1_1 b1_0)
                                              (loop_0 a1_1 b1_0 c1_1)
                                              (void)))))
                                      (begin
                                        (unsafe-vector-set! A_0 c1_0 y_0)
                                        (let ((b1_1 (unsafe-fx+ b1_0 1)))
                                          (let ((c1_1 (unsafe-fx+ c1_0 1)))
                                            (if (unsafe-fx<= n_0 b1_1)
                                              (letrec*
                                               ((loop_1
                                                 (|#%name|
                                                  loop
                                                  (lambda (a1_1 c1_2)
                                                    (begin
                                                      (if (unsafe-fx<
                                                           c1_2
                                                           b1_1)
                                                        (begin
                                                          (unsafe-vector-set!
                                                           A_0
                                                           c1_2
                                                           (unsafe-vector-ref
                                                            A_0
                                                            a1_1))
                                                          (loop_1
                                                           (unsafe-fx+ a1_1 1)
                                                           (unsafe-fx+
                                                            c1_2
                                                            1)))
                                                        (void)))))))
                                               (loop_1 a1_0 c1_1))
                                              (loop_0
                                               a1_0
                                               b1_1
                                               c1_1))))))))))))))
                       (loop_0 n_0 n/2+_0 0)))))))))))
     (values
      (case-lambda
       ((lst_0 less-than?_0)
        (let ((n_0 (length lst_0)))
          (if (unsafe-fx= n_0 0)
            lst_0
            (if (letrec*
                 ((loop_0
                   (|#%name|
                    loop
                    (lambda (last_0 next_0)
                      (begin
                        (let ((or-part_0 (null? next_0)))
                          (if or-part_0
                            or-part_0
                            (if (not
                                 (|#%app|
                                  less-than?_0
                                  (unsafe-car next_0)
                                  last_0))
                              (loop_0 (unsafe-car next_0) (unsafe-cdr next_0))
                              #f))))))))
                 (let ((app_0 (car lst_0))) (loop_0 app_0 (cdr lst_0))))
              lst_0
              (if (unsafe-fx<= n_0 3)
                (if (unsafe-fx= n_0 1)
                  lst_0
                  (if (unsafe-fx= n_0 2)
                    (let ((app_0 (cadr lst_0))) (list app_0 (car lst_0)))
                    (let ((a_0 (car lst_0)))
                      (let ((b_0 (cadr lst_0)))
                        (let ((c_0 (caddr lst_0)))
                          (let ((b_1 b_0) (a_1 a_0))
                            (if (|#%app| less-than?_0 b_1 a_1)
                              (if (|#%app| less-than?_0 c_0 b_1)
                                (list c_0 b_1 a_1)
                                (if (|#%app| less-than?_0 c_0 a_1)
                                  (list b_1 c_0 a_1)
                                  (list b_1 a_1 c_0)))
                              (if (|#%app| less-than?_0 c_0 a_1)
                                (list c_0 a_1 b_1)
                                (list a_1 c_0 b_1)))))))))
                (let ((vec_0 (make-vector (+ n_0 (ceiling (/ n_0 2))))))
                  (begin
                    (letrec*
                     ((loop_0
                       (|#%name|
                        loop
                        (lambda (i_0 lst_1)
                          (begin
                            (if (pair? lst_1)
                              (begin
                                (vector-set! vec_0 i_0 (car lst_1))
                                (let ((app_0 (add1 i_0)))
                                  (loop_0 app_0 (cdr lst_1))))
                              (void)))))))
                     (loop_0 0 lst_0))
                    (generic-sort_0 vec_0 less-than?_0 n_0)
                    (letrec*
                     ((loop_0
                       (|#%name|
                        loop
                        (lambda (i_0 r_0)
                          (begin
                            (let ((i_1 (sub1 i_0)))
                              (if (< i_1 0)
                                r_0
                                (loop_0
                                 i_1
                                 (cons (vector-ref vec_0 i_1) r_0)))))))))
                     (loop_0 n_0 '())))))))))
       ((lst_0 less-than?_0 getkey_0)
        (if (if getkey_0 (not (eq? values getkey_0)) #f)
          (|#%app|
           (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_0
                       (|#%name|
                        loop
                        (lambda (i_0 lst_1)
                          (begin
                            (if (pair? lst_1)
                              (let ((x_0 (car lst_1)))
                                (begin
                                  (unsafe-vector-set!
                                   vec_0
                                   i_0
                                   (cons (|#%app| getkey_0 x_0) x_0))
                                  (loop_0 (unsafe-fx+ i_0 1) (cdr lst_1))))
                              (void)))))))
                     (loop_0 0 lst_0))
                    (generic-sort/key_0 vec_0 less-than?_0 n_0 unsafe-car)
                    (letrec*
                     ((loop_0
                       (|#%name|
                        loop
                        (lambda (i_0 r_0)
                          (begin
                            (let ((i_1 (unsafe-fx- i_0 1)))
                              (if (unsafe-fx< i_1 0)
                                r_0
                                (loop_0
                                 i_1
                                 (cons
                                  (unsafe-cdr (unsafe-vector-ref vec_0 i_1))
                                  r_0)))))))))
                     (loop_0 n_0 '()))))
                (if (letrec*
                     ((loop_0
                       (|#%name|
                        loop
                        (lambda (last_0 next_0)
                          (begin
                            (let ((or-part_0 (null? next_0)))
                              (if or-part_0
                                or-part_0
                                (if (not
                                     (if getkey_0
                                       (let ((app_0
                                              (|#%app|
                                               getkey_0
                                               (unsafe-car next_0))))
                                         (|#%app|
                                          less-than?_0
                                          app_0
                                          (|#%app| getkey_0 last_0)))
                                       (|#%app|
                                        less-than?_0
                                        (unsafe-car next_0)
                                        last_0)))
                                  (loop_0
                                   (unsafe-car next_0)
                                   (unsafe-cdr next_0))
                                  #f))))))))
                     (let ((app_0 (car lst_0))) (loop_0 app_0 (cdr lst_0))))
                  lst_0
                  (if (unsafe-fx<= n_0 3)
                    (if (unsafe-fx= n_0 1)
                      lst_0
                      (if (unsafe-fx= n_0 2)
                        (let ((app_0 (cadr lst_0))) (list app_0 (car lst_0)))
                        (let ((a_0 (car lst_0)))
                          (let ((b_0 (cadr lst_0)))
                            (let ((c_0 (caddr lst_0)))
                              (let ((b_1 b_0) (a_1 a_0))
                                (if (if getkey_0
                                      (let ((app_0 (|#%app| getkey_0 b_1)))
                                        (|#%app|
                                         less-than?_0
                                         app_0
                                         (|#%app| getkey_0 a_1)))
                                      (|#%app| less-than?_0 b_1 a_1))
                                  (if (if getkey_0
                                        (let ((app_0 (|#%app| getkey_0 c_0)))
                                          (|#%app|
                                           less-than?_0
                                           app_0
                                           (|#%app| getkey_0 b_1)))
                                        (|#%app| less-than?_0 c_0 b_1))
                                    (list c_0 b_1 a_1)
                                    (if (if getkey_0
                                          (let ((app_0 (|#%app| getkey_0 c_0)))
                                            (|#%app|
                                             less-than?_0
                                             app_0
                                             (|#%app| getkey_0 a_1)))
                                          (|#%app| less-than?_0 c_0 a_1))
                                      (list b_1 c_0 a_1)
                                      (list b_1 a_1 c_0)))
                                  (if (if getkey_0
                                        (let ((app_0 (|#%app| getkey_0 c_0)))
                                          (|#%app|
                                           less-than?_0
                                           app_0
                                           (|#%app| getkey_0 a_1)))
                                        (|#%app| less-than?_0 c_0 a_1))
                                    (list c_0 a_1 b_1)
                                    (list a_1 c_0 b_1)))))))))
                    (let ((vec_0 (make-vector (+ n_0 (ceiling (/ n_0 2))))))
                      (begin
                        (letrec*
                         ((loop_0
                           (|#%name|
                            loop
                            (lambda (i_0 lst_1)
                              (begin
                                (if (pair? lst_1)
                                  (begin
                                    (vector-set! vec_0 i_0 (car lst_1))
                                    (let ((app_0 (add1 i_0)))
                                      (loop_0 app_0 (cdr lst_1))))
                                  (void)))))))
                         (loop_0 0 lst_0))
                        (generic-sort/key_0 vec_0 less-than?_0 n_0 getkey_0)
                        (letrec*
                         ((loop_0
                           (|#%name|
                            loop
                            (lambda (i_0 r_0)
                              (begin
                                (let ((i_1 (sub1 i_0)))
                                  (if (< i_1 0)
                                    r_0
                                    (loop_0
                                     i_1
                                     (cons (vector-ref vec_0 i_1) r_0)))))))))
                         (loop_0 n_0 '())))))))))
          (|#%app|
           (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| range-ref v_0 2)))
         (if cont?_0 (not (|#%app| cont?_0 (|#%app| range-ref v_0 0))) #f)))
     (lambda (v_0) (|#%app| range-ref v_0 0))
     (lambda (v_0)
       (let ((app_0
              (let ((app_0 (|#%app| range-ref v_0 1)))
                (|#%app| app_0 (|#%app| range-ref v_0 0)))))
         (let ((app_1 (|#%app| range-ref v_0 1)))
           (make-range app_0 app_1 (|#%app| range-ref v_0 2)))))))
   (cons
    prop:gen-sequence
    (lambda (v_0)
      (let ((app_0 (|#%app| range-ref v_0 1)))
        (let ((app_1 (|#%app| range-ref v_0 0)))
          (values values #f app_0 app_1 (|#%app| range-ref v_0 2) #f #f))))))))
(define check-range
  (lambda (a_0 b_0 step_0) (check-range-generic 'in-range a_0 b_0 step_0)))
(define check-range-generic
  (lambda (who_0 a_0 b_0 step_0)
    (begin
      (if (real? a_0) (void) (raise-argument-error who_0 "real?" a_0))
      (if (real? b_0) (void) (raise-argument-error who_0 "real?" b_0))
      (if (real? step_0) (void) (raise-argument-error who_0 "real?" step_0)))))
(define check-naturals
  (lambda (n_0)
    (if (if (integer? n_0) (if (exact? n_0) (>= n_0 0) #f) #f)
      (void)
      (raise-argument-error 'in-naturals "exact-nonnegative-integer?" n_0))))
(define-values
 (struct:list-stream
  make-list-stream
  list-stream?
  list-stream-ref
  list-stream-set!)
 (make-struct-type
  'stream
  #f
  1
  0
  #f
  (list
   (cons
    prop:stream
    (vector
     (lambda (v_0) (not (pair? (|#%app| list-stream-ref v_0 0))))
     (lambda (v_0) (car (|#%app| list-stream-ref v_0 0)))
     (lambda (v_0) (make-list-stream (cdr (|#%app| list-stream-ref v_0 0))))))
   (cons
    prop:gen-sequence
    (lambda (v_0)
      (values car cdr values (|#%app| list-stream-ref v_0 0) pair? #f #f))))))
(define check-list
  (lambda (l_0)
    (if (list? l_0) (void) (raise-argument-error 'in-list "list?" l_0))))
(define check-in-hash
  (lambda (ht_0)
    (if (hash? ht_0) (void) (raise-argument-error 'in-hash "hash?" ht_0))))
(define check-in-hash-keys
  (lambda (ht_0)
    (if (hash? ht_0)
      (void)
      (raise-argument-error 'in-hash-keys "hash?" ht_0))))
(define check-ranges
  (lambda (who_0 type-name_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
         type-name_0
         "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
         type-name_0
         "stopping "
         stop_0
         vec_0
         -1
         len_0))
      (if (if (exact-integer? step_0) (not (zero? step_0)) #f)
        (void)
        (raise-argument-error
         who_0
         "(and/c exact-integer? (not/c zero?))"
         step_0))
      (if (if (< start_0 stop_0) (< step_0 0) #f)
        (raise-arguments-error
         who_0
         "starting index less than stopping index, but given a negative step"
         "starting index"
         start_0
         "stopping index"
         stop_0
         "step"
         step_0)
        (void))
      (if (if (< stop_0 start_0) (> step_0 0) #f)
        (raise-arguments-error
         who_0
         "starting index more than stopping index, but given a positive step"
         "starting index"
         start_0
         "stopping index"
         stop_0
         "step"
         step_0)
        (void)))))
(define normalise-inputs
  (lambda (who_0
           type-name_0
           vector?_0
           unsafe-vector-length_0
           vec_0
           start_0
           stop_0
           step_0)
    (begin
      (if (|#%app| vector?_0 vec_0)
        (void)
        (raise-argument-error who_0 type-name_0 vec_0))
      (let ((len_0 (|#%app| unsafe-vector-length_0 vec_0)))
        (let ((stop*_0 (if stop_0 stop_0 len_0)))
          (begin
            (check-ranges who_0 type-name_0 vec_0 start_0 stop*_0 step_0 len_0)
            (values vec_0 start_0 stop*_0 step_0)))))))
(define unsafe-normalise-inputs
  (lambda (unsafe-vector-length_0 vec_0 start_0 stop_0 step_0)
    (values
     vec_0
     start_0
     (if stop_0 stop_0 (|#%app| unsafe-vector-length_0 vec_0))
     step_0)))
(define check-vector
  (lambda (v_0)
    (if (vector? v_0) (void) (raise-argument-error 'in-vector "vector" v_0))))
(define-values
 (struct:do-stream make-do-stream do-stream? do-stream-ref do-stream-set!)
 (make-struct-type
  'stream
  #f
  3
  0
  #f
  (list
   (cons
    prop:stream
    (vector
     (lambda (v_0) (|#%app| (|#%app| do-stream-ref v_0 0)))
     (lambda (v_0) (|#%app| (|#%app| do-stream-ref v_0 1)))
     (lambda (v_0) (|#%app| (|#%app| do-stream-ref v_0 2))))))))
(define empty-stream (make-do-stream (lambda () #t) void void))
(define hash-keys
  (lambda (h_0)
    (letrec*
     ((loop_0
       (|#%name|
        loop
        (lambda (pos_0)
          (begin
            (if pos_0
              (let ((k_0 (hash-iterate-key h_0 pos_0 unsafe-undefined)))
                (let ((r_0 (loop_0 (hash-iterate-next h_0 pos_0))))
                  (let ((k_1 k_0))
                    (if (eq? k_1 unsafe-undefined) r_0 (cons k_1 r_0)))))
              null))))))
     (loop_0 (hash-iterate-first h_0)))))
(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 print-value-columns
  (make-parameter
   +inf.0
   (lambda (c_0)
     (if (let ((or-part_0 (eqv? c_0 +inf.0)))
           (if or-part_0 or-part_0 (if (exact-integer? c_0) (> c_0 5) #f)))
       c_0
       (raise-argument-error
        'print-value-columns
        "(or/c +inf.0 (and/c exact-integer? (>/c 5)))"
        c_0)))
   'print-value-columns))
(define 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 finish_2045
  (make-struct-type-install-properties
   '(known-constant)
   0
   0
   #f
   null
   'prefab
   #f
   '()
   #f
   'known-constant))
(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 effect_2537 (finish_2045 struct:known-constant))
(define known-constant
  (|#%name|
   known-constant
   (record-constructor
    (make-record-constructor-descriptor struct:known-constant #f #f))))
(define known-constant?_2598
  (|#%name| known-constant? (record-predicate struct:known-constant)))
(define known-constant?
  (|#%name|
   known-constant?
   (lambda (v)
     (if (known-constant?_2598 v)
       #t
       ($value
        (if (impersonator? v)
          (known-constant?_2598 (impersonator-val v))
          #f))))))
(define finish_2081
  (make-struct-type-install-properties
   '(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 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 effect_2382 (finish_2081 struct:known-consistent))
(define known-consistent
  (|#%name|
   known-consistent
   (record-constructor
    (make-record-constructor-descriptor struct:known-consistent #f #f))))
(define known-consistent?_3048
  (|#%name| known-consistent? (record-predicate struct:known-consistent)))
(define known-consistent?
  (|#%name|
   known-consistent?
   (lambda (v)
     (if (known-consistent?_3048 v)
       #t
       ($value
        (if (impersonator? v)
          (known-consistent?_3048 (impersonator-val v))
          #f))))))
(define finish_2443
  (make-struct-type-install-properties
   '(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 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 effect_2570 (finish_2443 struct:known-authentic))
(define known-authentic
  (|#%name|
   known-authentic
   (record-constructor
    (make-record-constructor-descriptor struct:known-authentic #f #f))))
(define known-authentic?_3119
  (|#%name| known-authentic? (record-predicate struct:known-authentic)))
(define known-authentic?
  (|#%name|
   known-authentic?
   (lambda (v)
     (if (known-authentic?_3119 v)
       #t
       ($value
        (if (impersonator? v)
          (known-authentic?_3119 (impersonator-val v))
          #f))))))
(define finish_2536
  (make-struct-type-install-properties
   '(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 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 effect_2542 (finish_2536 struct:known-copy))
(define known-copy
  (|#%name|
   known-copy
   (record-constructor
    (make-record-constructor-descriptor struct:known-copy #f #f))))
(define known-copy?_2832
  (|#%name| known-copy? (record-predicate struct:known-copy)))
(define known-copy?
  (|#%name|
   known-copy?
   (lambda (v)
     (if (known-copy?_2832 v)
       #t
       ($value
        (if (impersonator? v) (known-copy?_2832 (impersonator-val v)) #f))))))
(define known-copy-id_2721
  (|#%name| known-copy-id (record-accessor struct:known-copy 0)))
(define known-copy-id
  (|#%name|
   known-copy-id
   (lambda (s)
     (if (known-copy?_2832 s)
       (known-copy-id_2721 s)
       ($value
        (impersonate-ref
         known-copy-id_2721
         struct:known-copy
         0
         s
         'known-copy
         'id))))))
(define finish_2861
  (make-struct-type-install-properties
   '(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 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 effect_2788 (finish_2861 struct:known-literal))
(define known-literal
  (|#%name|
   known-literal
   (record-constructor
    (make-record-constructor-descriptor struct:known-literal #f #f))))
(define known-literal?_2305
  (|#%name| known-literal? (record-predicate struct:known-literal)))
(define known-literal?
  (|#%name|
   known-literal?
   (lambda (v)
     (if (known-literal?_2305 v)
       #t
       ($value
        (if (impersonator? v)
          (known-literal?_2305 (impersonator-val v))
          #f))))))
(define known-literal-value_2398
  (|#%name| known-literal-value (record-accessor struct:known-literal 0)))
(define known-literal-value
  (|#%name|
   known-literal-value
   (lambda (s)
     (if (known-literal?_2305 s)
       (known-literal-value_2398 s)
       ($value
        (impersonate-ref
         known-literal-value_2398
         struct:known-literal
         0
         s
         'known-literal
         'value))))))
(define finish_2897
  (make-struct-type-install-properties
   '(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 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 effect_2677 (finish_2897 struct:known-procedure))
(define known-procedure
  (|#%name|
   known-procedure
   (record-constructor
    (make-record-constructor-descriptor struct:known-procedure #f #f))))
(define known-procedure?_2612
  (|#%name| known-procedure? (record-predicate struct:known-procedure)))
(define known-procedure?
  (|#%name|
   known-procedure?
   (lambda (v)
     (if (known-procedure?_2612 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure?_2612 (impersonator-val v))
          #f))))))
(define known-procedure-arity-mask_2503
  (|#%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?_2612 s)
       (known-procedure-arity-mask_2503 s)
       ($value
        (impersonate-ref
         known-procedure-arity-mask_2503
         struct:known-procedure
         0
         s
         'known-procedure
         'arity-mask))))))
(define finish_2542
  (make-struct-type-install-properties
   '(known-procedure/single-valued)
   0
   0
   (if (struct-type? struct:known-procedure)
     struct:known-procedure
     (check-struct-type 'struct struct:known-procedure))
   null
   'prefab
   #f
   '()
   #f
   'known-procedure/single-valued))
(define struct:known-procedure/single-valued
  (make-record-type-descriptor*
   'known-procedure/single-valued
   (if (struct-type? struct:known-procedure)
     struct:known-procedure
     (check-struct-type 'struct struct:known-procedure))
   (structure-type-lookup-prefab-uid
    'known-procedure/single-valued
    (if (struct-type? struct:known-procedure)
      struct:known-procedure
      (check-struct-type 'struct struct:known-procedure))
    0
    0
    #f
    '())
   #f
   #f
   0
   0))
(define effect_2532 (finish_2542 struct:known-procedure/single-valued))
(define known-procedure/single-valued
  (|#%name|
   known-procedure/single-valued
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-procedure/single-valued
     #f
     #f))))
(define known-procedure/single-valued?_3105
  (|#%name|
   known-procedure/single-valued?
   (record-predicate struct:known-procedure/single-valued)))
(define known-procedure/single-valued?
  (|#%name|
   known-procedure/single-valued?
   (lambda (v)
     (if (known-procedure/single-valued?_3105 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/single-valued?_3105 (impersonator-val v))
          #f))))))
(define finish_2099
  (make-struct-type-install-properties
   '(known-procedure/no-prompt)
   0
   0
   (if (struct-type? struct:known-procedure/single-valued)
     struct:known-procedure/single-valued
     (check-struct-type 'struct struct:known-procedure/single-valued))
   null
   'prefab
   #f
   '()
   #f
   'known-procedure/no-prompt))
(define struct:known-procedure/no-prompt
  (make-record-type-descriptor*
   'known-procedure/no-prompt
   (if (struct-type? struct:known-procedure/single-valued)
     struct:known-procedure/single-valued
     (check-struct-type 'struct struct:known-procedure/single-valued))
   (structure-type-lookup-prefab-uid
    'known-procedure/no-prompt
    (if (struct-type? struct:known-procedure/single-valued)
      struct:known-procedure/single-valued
      (check-struct-type 'struct struct:known-procedure/single-valued))
    0
    0
    #f
    '())
   #f
   #f
   0
   0))
(define effect_1771 (finish_2099 struct: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?_2036
  (|#%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?_2036 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/no-prompt?_2036 (impersonator-val v))
          #f))))))
(define finish_2719
  (make-struct-type-install-properties
   '(known-procedure/no-prompt/multi)
   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/multi))
(define struct:known-procedure/no-prompt/multi
  (make-record-type-descriptor*
   'known-procedure/no-prompt/multi
   (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/multi
    (if (struct-type? struct:known-procedure)
      struct:known-procedure
      (check-struct-type 'struct struct:known-procedure))
    0
    0
    #f
    '())
   #f
   #f
   0
   0))
(define effect_2793 (finish_2719 struct:known-procedure/no-prompt/multi))
(define known-procedure/no-prompt/multi
  (|#%name|
   known-procedure/no-prompt/multi
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-procedure/no-prompt/multi
     #f
     #f))))
(define known-procedure/no-prompt/multi?_2394
  (|#%name|
   known-procedure/no-prompt/multi?
   (record-predicate struct:known-procedure/no-prompt/multi)))
(define known-procedure/no-prompt/multi?
  (|#%name|
   known-procedure/no-prompt/multi?
   (lambda (v)
     (if (known-procedure/no-prompt/multi?_2394 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/no-prompt/multi?_2394 (impersonator-val v))
          #f))))))
(define finish_2574
  (make-struct-type-install-properties
   '(known-procedure/no-return)
   0
   0
   (if (struct-type? struct:known-procedure/single-valued)
     struct:known-procedure/single-valued
     (check-struct-type 'struct struct:known-procedure/single-valued))
   null
   'prefab
   #f
   '()
   #f
   'known-procedure/no-return))
(define struct:known-procedure/no-return
  (make-record-type-descriptor*
   'known-procedure/no-return
   (if (struct-type? struct:known-procedure/single-valued)
     struct:known-procedure/single-valued
     (check-struct-type 'struct struct:known-procedure/single-valued))
   (structure-type-lookup-prefab-uid
    'known-procedure/no-return
    (if (struct-type? struct:known-procedure/single-valued)
      struct:known-procedure/single-valued
      (check-struct-type 'struct struct:known-procedure/single-valued))
    0
    0
    #f
    '())
   #f
   #f
   0
   0))
(define effect_2517 (finish_2574 struct:known-procedure/no-return))
(define known-procedure/no-return
  (|#%name|
   known-procedure/no-return
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-procedure/no-return
     #f
     #f))))
(define known-procedure/no-return?_1763
  (|#%name|
   known-procedure/no-return?
   (record-predicate struct:known-procedure/no-return)))
(define known-procedure/no-return?
  (|#%name|
   known-procedure/no-return?
   (lambda (v)
     (if (known-procedure/no-return?_1763 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/no-return?_1763 (impersonator-val v))
          #f))))))
(define finish_2550
  (make-struct-type-install-properties
   '(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 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 effect_2308 (finish_2550 struct: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?_2843
  (|#%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?_2843 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/can-inline?_2843 (impersonator-val v))
          #f))))))
(define known-procedure/can-inline-expr_2497
  (|#%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?_2843 s)
       (known-procedure/can-inline-expr_2497 s)
       ($value
        (impersonate-ref
         known-procedure/can-inline-expr_2497
         struct:known-procedure/can-inline
         0
         s
         'known-procedure/can-inline
         'expr))))))
(define finish_1976
  (make-struct-type-install-properties
   '(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 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 effect_2618
  (finish_1976 struct: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?_2059
  (|#%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?_2059 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/can-inline/need-imports?_2059 (impersonator-val v))
          #f))))))
(define known-procedure/can-inline/need-imports-needed_2435
  (|#%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?_2059 s)
       (known-procedure/can-inline/need-imports-needed_2435 s)
       ($value
        (impersonate-ref
         known-procedure/can-inline/need-imports-needed_2435
         struct:known-procedure/can-inline/need-imports
         0
         s
         'known-procedure/can-inline/need-imports
         'needed))))))
(define finish_1734
  (make-struct-type-install-properties
   '(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 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 effect_2478 (finish_1734 struct: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?_2882
  (|#%name|
   known-procedure/folding?
   (record-predicate struct:known-procedure/folding)))
(define known-procedure/folding?
  (|#%name|
   known-procedure/folding?
   (lambda (v)
     (if (known-procedure/folding?_2882 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/folding?_2882 (impersonator-val v))
          #f))))))
(define finish_2008
  (make-struct-type-install-properties
   '(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 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 effect_2518 (finish_2008 struct: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?_2382
  (|#%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?_2382 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/folding/limited?_2382 (impersonator-val v))
          #f))))))
(define known-procedure/folding/limited-kind_2789
  (|#%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?_2382 s)
       (known-procedure/folding/limited-kind_2789 s)
       ($value
        (impersonate-ref
         known-procedure/folding/limited-kind_2789
         struct:known-procedure/folding/limited
         0
         s
         'known-procedure/folding/limited
         'kind))))))
(define finish_2826
  (make-struct-type-install-properties
   '(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 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 effect_2467 (finish_2826 struct: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?_3041
  (|#%name|
   known-procedure/succeeds?
   (record-predicate struct:known-procedure/succeeds)))
(define known-procedure/succeeds?
  (|#%name|
   known-procedure/succeeds?
   (lambda (v)
     (if (known-procedure/succeeds?_3041 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/succeeds?_3041 (impersonator-val v))
          #f))))))
(define finish_2051
  (make-struct-type-install-properties
   '(known-procedure/allocates)
   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/allocates))
(define struct:known-procedure/allocates
  (make-record-type-descriptor*
   'known-procedure/allocates
   (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/allocates
    (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 effect_2336 (finish_2051 struct:known-procedure/allocates))
(define known-procedure/allocates
  (|#%name|
   known-procedure/allocates
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-procedure/allocates
     #f
     #f))))
(define known-procedure/allocates?_2244
  (|#%name|
   known-procedure/allocates?
   (record-predicate struct:known-procedure/allocates)))
(define known-procedure/allocates?
  (|#%name|
   known-procedure/allocates?
   (lambda (v)
     (if (known-procedure/allocates?_2244 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/allocates?_2244 (impersonator-val v))
          #f))))))
(define finish_2724
  (make-struct-type-install-properties
   '(known-procedure/pure)
   0
   0
   (if (struct-type? struct:known-procedure/allocates)
     struct:known-procedure/allocates
     (check-struct-type 'struct struct:known-procedure/allocates))
   null
   'prefab
   #f
   '()
   #f
   'known-procedure/pure))
(define struct:known-procedure/pure
  (make-record-type-descriptor*
   'known-procedure/pure
   (if (struct-type? struct:known-procedure/allocates)
     struct:known-procedure/allocates
     (check-struct-type 'struct struct:known-procedure/allocates))
   (structure-type-lookup-prefab-uid
    'known-procedure/pure
    (if (struct-type? struct:known-procedure/allocates)
      struct:known-procedure/allocates
      (check-struct-type 'struct struct:known-procedure/allocates))
    0
    0
    #f
    '())
   #f
   #f
   0
   0))
(define effect_3058 (finish_2724 struct: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?_2240
  (|#%name|
   known-procedure/pure?
   (record-predicate struct:known-procedure/pure)))
(define known-procedure/pure?
  (|#%name|
   known-procedure/pure?
   (lambda (v)
     (if (known-procedure/pure?_2240 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/pure?_2240 (impersonator-val v))
          #f))))))
(define finish_2466
  (make-struct-type-install-properties
   '(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 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 effect_2264 (finish_2466 struct: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?_2719
  (|#%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?_2719 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/pure/folding?_2719 (impersonator-val v))
          #f))))))
(define finish_2978
  (make-struct-type-install-properties
   '(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 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 effect_2657 (finish_2978 struct: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?_2471
  (|#%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?_2471 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/pure/folding-unsafe?_2471 (impersonator-val v))
          #f))))))
(define known-procedure/pure/folding-unsafe-safe_2536
  (|#%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?_2471 s)
       (known-procedure/pure/folding-unsafe-safe_2536 s)
       ($value
        (impersonate-ref
         known-procedure/pure/folding-unsafe-safe_2536
         struct:known-procedure/pure/folding-unsafe
         0
         s
         'known-procedure/pure/folding-unsafe
         'safe))))))
(define finish_3128
  (make-struct-type-install-properties
   '(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 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 effect_1752 (finish_3128 struct: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?_2703
  (|#%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?_2703 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/has-unsafe?_2703 (impersonator-val v))
          #f))))))
(define known-procedure/has-unsafe-alternate_2847
  (|#%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?_2703 s)
       (known-procedure/has-unsafe-alternate_2847 s)
       ($value
        (impersonate-ref
         known-procedure/has-unsafe-alternate_2847
         struct:known-procedure/has-unsafe
         0
         s
         'known-procedure/has-unsafe
         'alternate))))))
(define finish_2439
  (make-struct-type-install-properties
   '(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 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 effect_2489 (finish_2439 struct: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?_2169
  (|#%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?_2169 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/has-unsafe/folding?_2169 (impersonator-val v))
          #f))))))
(define finish_2602
  (make-struct-type-install-properties
   '(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 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 effect_2512
  (finish_2602 struct: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?_2926
  (|#%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?_2926 v)
       #t
       ($value
        (if (impersonator? v)
          (known-procedure/has-unsafe/folding/limited?_2926
           (impersonator-val v))
          #f))))))
(define known-procedure/has-unsafe/folding/limited-kind_1942
  (|#%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?_2926 s)
       (known-procedure/has-unsafe/folding/limited-kind_1942 s)
       ($value
        (impersonate-ref
         known-procedure/has-unsafe/folding/limited-kind_1942
         struct:known-procedure/has-unsafe/folding/limited
         0
         s
         'known-procedure/has-unsafe/folding/limited
         'kind))))))
(define finish_2844
  (make-struct-type-install-properties
   '(known-struct-type)
   4
   0
   (if (struct-type? struct:known-consistent)
     struct:known-consistent
     (check-struct-type 'struct struct:known-consistent))
   null
   'prefab
   #f
   '(0 1 2 3)
   #f
   'known-struct-type))
(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))
    4
    0
    #f
    '(0 1 2 3))
   #f
   #f
   4
   15))
(define effect_2667 (finish_2844 struct: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?_2572
  (|#%name| known-struct-type? (record-predicate struct:known-struct-type)))
(define known-struct-type?
  (|#%name|
   known-struct-type?
   (lambda (v)
     (if (known-struct-type?_2572 v)
       #t
       ($value
        (if (impersonator? v)
          (known-struct-type?_2572 (impersonator-val v))
          #f))))))
(define known-struct-type-type_1931
  (|#%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?_2572 s)
       (known-struct-type-type_1931 s)
       ($value
        (impersonate-ref
         known-struct-type-type_1931
         struct:known-struct-type
         0
         s
         'known-struct-type
         'type))))))
(define known-struct-type-field-count_2903
  (|#%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?_2572 s)
       (known-struct-type-field-count_2903 s)
       ($value
        (impersonate-ref
         known-struct-type-field-count_2903
         struct:known-struct-type
         1
         s
         'known-struct-type
         'field-count))))))
(define known-struct-type-pure-constructor?_2541
  (|#%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?_2572 s)
       (known-struct-type-pure-constructor?_2541 s)
       ($value
        (impersonate-ref
         known-struct-type-pure-constructor?_2541
         struct:known-struct-type
         2
         s
         'known-struct-type
         'pure-constructor?))))))
(define known-struct-type-sealed?_2229
  (|#%name|
   known-struct-type-sealed?
   (record-accessor struct:known-struct-type 3)))
(define known-struct-type-sealed?
  (|#%name|
   known-struct-type-sealed?
   (lambda (s)
     (if (known-struct-type?_2572 s)
       (known-struct-type-sealed?_2229 s)
       ($value
        (impersonate-ref
         known-struct-type-sealed?_2229
         struct:known-struct-type
         3
         s
         'known-struct-type
         'sealed?))))))
(define finish_2453
  (make-struct-type-install-properties
   '(known-constructor)
   1
   0
   (if (struct-type? struct:known-procedure/allocates)
     struct:known-procedure/allocates
     (check-struct-type 'struct struct:known-procedure/allocates))
   null
   'prefab
   #f
   '(0)
   #f
   'known-constructor))
(define struct:known-constructor
  (make-record-type-descriptor*
   'known-constructor
   (if (struct-type? struct:known-procedure/allocates)
     struct:known-procedure/allocates
     (check-struct-type 'struct struct:known-procedure/allocates))
   (structure-type-lookup-prefab-uid
    'known-constructor
    (if (struct-type? struct:known-procedure/allocates)
      struct:known-procedure/allocates
      (check-struct-type 'struct struct:known-procedure/allocates))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect_1913 (finish_2453 struct:known-constructor))
(define known-constructor
  (|#%name|
   known-constructor
   (record-constructor
    (make-record-constructor-descriptor struct:known-constructor #f #f))))
(define known-constructor?_2802
  (|#%name| known-constructor? (record-predicate struct:known-constructor)))
(define known-constructor?
  (|#%name|
   known-constructor?
   (lambda (v)
     (if (known-constructor?_2802 v)
       #t
       ($value
        (if (impersonator? v)
          (known-constructor?_2802 (impersonator-val v))
          #f))))))
(define known-constructor-type_2993
  (|#%name|
   known-constructor-type
   (record-accessor struct:known-constructor 0)))
(define known-constructor-type
  (|#%name|
   known-constructor-type
   (lambda (s)
     (if (known-constructor?_2802 s)
       (known-constructor-type_2993 s)
       ($value
        (impersonate-ref
         known-constructor-type_2993
         struct:known-constructor
         0
         s
         'known-constructor
         'type))))))
(define finish_2917
  (make-struct-type-install-properties
   '(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 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 effect_2144 (finish_2917 struct:known-predicate))
(define known-predicate
  (|#%name|
   known-predicate
   (record-constructor
    (make-record-constructor-descriptor struct:known-predicate #f #f))))
(define known-predicate?_2903
  (|#%name| known-predicate? (record-predicate struct:known-predicate)))
(define known-predicate?
  (|#%name|
   known-predicate?
   (lambda (v)
     (if (known-predicate?_2903 v)
       #t
       ($value
        (if (impersonator? v)
          (known-predicate?_2903 (impersonator-val v))
          #f))))))
(define known-predicate-type_2853
  (|#%name| known-predicate-type (record-accessor struct:known-predicate 0)))
(define known-predicate-type
  (|#%name|
   known-predicate-type
   (lambda (s)
     (if (known-predicate?_2903 s)
       (known-predicate-type_2853 s)
       ($value
        (impersonate-ref
         known-predicate-type_2853
         struct:known-predicate
         0
         s
         'known-predicate
         'type))))))
(define finish_2548
  (make-struct-type-install-properties
   '(known-accessor)
   1
   0
   (if (struct-type? struct:known-procedure/single-valued)
     struct:known-procedure/single-valued
     (check-struct-type 'struct struct:known-procedure/single-valued))
   null
   'prefab
   #f
   '(0)
   #f
   'known-accessor))
(define struct:known-accessor
  (make-record-type-descriptor*
   'known-accessor
   (if (struct-type? struct:known-procedure/single-valued)
     struct:known-procedure/single-valued
     (check-struct-type 'struct struct:known-procedure/single-valued))
   (structure-type-lookup-prefab-uid
    'known-accessor
    (if (struct-type? struct:known-procedure/single-valued)
      struct:known-procedure/single-valued
      (check-struct-type 'struct struct:known-procedure/single-valued))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect_2905 (finish_2548 struct:known-accessor))
(define known-accessor
  (|#%name|
   known-accessor
   (record-constructor
    (make-record-constructor-descriptor struct:known-accessor #f #f))))
(define known-accessor?_2710
  (|#%name| known-accessor? (record-predicate struct:known-accessor)))
(define known-accessor?
  (|#%name|
   known-accessor?
   (lambda (v)
     (if (known-accessor?_2710 v)
       #t
       ($value
        (if (impersonator? v)
          (known-accessor?_2710 (impersonator-val v))
          #f))))))
(define known-accessor-type_2147
  (|#%name| known-accessor-type (record-accessor struct:known-accessor 0)))
(define known-accessor-type
  (|#%name|
   known-accessor-type
   (lambda (s)
     (if (known-accessor?_2710 s)
       (known-accessor-type_2147 s)
       ($value
        (impersonate-ref
         known-accessor-type_2147
         struct:known-accessor
         0
         s
         'known-accessor
         'type))))))
(define finish_2552
  (make-struct-type-install-properties
   '(known-mutator)
   1
   0
   (if (struct-type? struct:known-procedure/single-valued)
     struct:known-procedure/single-valued
     (check-struct-type 'struct struct:known-procedure/single-valued))
   null
   'prefab
   #f
   '(0)
   #f
   'known-mutator))
(define struct:known-mutator
  (make-record-type-descriptor*
   'known-mutator
   (if (struct-type? struct:known-procedure/single-valued)
     struct:known-procedure/single-valued
     (check-struct-type 'struct struct:known-procedure/single-valued))
   (structure-type-lookup-prefab-uid
    'known-mutator
    (if (struct-type? struct:known-procedure/single-valued)
      struct:known-procedure/single-valued
      (check-struct-type 'struct struct:known-procedure/single-valued))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect_2521 (finish_2552 struct:known-mutator))
(define known-mutator
  (|#%name|
   known-mutator
   (record-constructor
    (make-record-constructor-descriptor struct:known-mutator #f #f))))
(define known-mutator?_2993
  (|#%name| known-mutator? (record-predicate struct:known-mutator)))
(define known-mutator?
  (|#%name|
   known-mutator?
   (lambda (v)
     (if (known-mutator?_2993 v)
       #t
       ($value
        (if (impersonator? v)
          (known-mutator?_2993 (impersonator-val v))
          #f))))))
(define known-mutator-type_2618
  (|#%name| known-mutator-type (record-accessor struct:known-mutator 0)))
(define known-mutator-type
  (|#%name|
   known-mutator-type
   (lambda (s)
     (if (known-mutator?_2993 s)
       (known-mutator-type_2618 s)
       ($value
        (impersonate-ref
         known-mutator-type_2618
         struct:known-mutator
         0
         s
         'known-mutator
         'type))))))
(define finish_2184
  (make-struct-type-install-properties
   '(known-struct-constructor)
   1
   0
   (if (struct-type? struct:known-constructor)
     struct:known-constructor
     (check-struct-type 'struct struct:known-constructor))
   null
   'prefab
   #f
   '(0)
   #f
   'known-struct-constructor))
(define struct:known-struct-constructor
  (make-record-type-descriptor*
   'known-struct-constructor
   (if (struct-type? struct:known-constructor)
     struct:known-constructor
     (check-struct-type 'struct struct:known-constructor))
   (structure-type-lookup-prefab-uid
    'known-struct-constructor
    (if (struct-type? struct:known-constructor)
      struct:known-constructor
      (check-struct-type 'struct struct:known-constructor))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect_3238 (finish_2184 struct:known-struct-constructor))
(define known-struct-constructor
  (|#%name|
   known-struct-constructor
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-struct-constructor
     #f
     #f))))
(define known-struct-constructor?_2705
  (|#%name|
   known-struct-constructor?
   (record-predicate struct:known-struct-constructor)))
(define known-struct-constructor?
  (|#%name|
   known-struct-constructor?
   (lambda (v)
     (if (known-struct-constructor?_2705 v)
       #t
       ($value
        (if (impersonator? v)
          (known-struct-constructor?_2705 (impersonator-val v))
          #f))))))
(define known-struct-constructor-type-id_2882
  (|#%name|
   known-struct-constructor-type-id
   (record-accessor struct:known-struct-constructor 0)))
(define known-struct-constructor-type-id
  (|#%name|
   known-struct-constructor-type-id
   (lambda (s)
     (if (known-struct-constructor?_2705 s)
       (known-struct-constructor-type-id_2882 s)
       ($value
        (impersonate-ref
         known-struct-constructor-type-id_2882
         struct:known-struct-constructor
         0
         s
         'known-struct-constructor
         'type-id))))))
(define finish_2304
  (make-struct-type-install-properties
   '(known-struct-predicate)
   3
   0
   (if (struct-type? struct:known-predicate)
     struct:known-predicate
     (check-struct-type 'struct struct:known-predicate))
   null
   'prefab
   #f
   '(0 1 2)
   #f
   'known-struct-predicate))
(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))
    3
    0
    #f
    '(0 1 2))
   #f
   #f
   3
   7))
(define effect_2384 (finish_2304 struct: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?_2418
  (|#%name|
   known-struct-predicate?
   (record-predicate struct:known-struct-predicate)))
(define known-struct-predicate?
  (|#%name|
   known-struct-predicate?
   (lambda (v)
     (if (known-struct-predicate?_2418 v)
       #t
       ($value
        (if (impersonator? v)
          (known-struct-predicate?_2418 (impersonator-val v))
          #f))))))
(define known-struct-predicate-type-id_2101
  (|#%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?_2418 s)
       (known-struct-predicate-type-id_2101 s)
       ($value
        (impersonate-ref
         known-struct-predicate-type-id_2101
         struct:known-struct-predicate
         0
         s
         'known-struct-predicate
         'type-id))))))
(define known-struct-predicate-authentic?_2155
  (|#%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?_2418 s)
       (known-struct-predicate-authentic?_2155 s)
       ($value
        (impersonate-ref
         known-struct-predicate-authentic?_2155
         struct:known-struct-predicate
         1
         s
         'known-struct-predicate
         'authentic?))))))
(define known-struct-predicate-sealed?_2251
  (|#%name|
   known-struct-predicate-sealed?
   (record-accessor struct:known-struct-predicate 2)))
(define known-struct-predicate-sealed?
  (|#%name|
   known-struct-predicate-sealed?
   (lambda (s)
     (if (known-struct-predicate?_2418 s)
       (known-struct-predicate-sealed?_2251 s)
       ($value
        (impersonate-ref
         known-struct-predicate-sealed?_2251
         struct:known-struct-predicate
         2
         s
         'known-struct-predicate
         'sealed?))))))
(define finish_3014
  (make-struct-type-install-properties
   '(known-field-accessor)
   4
   0
   (if (struct-type? struct:known-accessor)
     struct:known-accessor
     (check-struct-type 'struct struct:known-accessor))
   null
   'prefab
   #f
   '(0 1 2 3)
   #f
   'known-field-accessor))
(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))
    4
    0
    #f
    '(0 1 2 3))
   #f
   #f
   4
   15))
(define effect_2259 (finish_3014 struct: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?_2878
  (|#%name|
   known-field-accessor?
   (record-predicate struct:known-field-accessor)))
(define known-field-accessor?
  (|#%name|
   known-field-accessor?
   (lambda (v)
     (if (known-field-accessor?_2878 v)
       #t
       ($value
        (if (impersonator? v)
          (known-field-accessor?_2878 (impersonator-val v))
          #f))))))
(define known-field-accessor-type-id_2744
  (|#%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?_2878 s)
       (known-field-accessor-type-id_2744 s)
       ($value
        (impersonate-ref
         known-field-accessor-type-id_2744
         struct:known-field-accessor
         0
         s
         'known-field-accessor
         'type-id))))))
(define known-field-accessor-authentic?_2286
  (|#%name|
   known-field-accessor-authentic?
   (record-accessor struct:known-field-accessor 1)))
(define known-field-accessor-authentic?
  (|#%name|
   known-field-accessor-authentic?
   (lambda (s)
     (if (known-field-accessor?_2878 s)
       (known-field-accessor-authentic?_2286 s)
       ($value
        (impersonate-ref
         known-field-accessor-authentic?_2286
         struct:known-field-accessor
         1
         s
         'known-field-accessor
         'authentic?))))))
(define known-field-accessor-pos_2482
  (|#%name|
   known-field-accessor-pos
   (record-accessor struct:known-field-accessor 2)))
(define known-field-accessor-pos
  (|#%name|
   known-field-accessor-pos
   (lambda (s)
     (if (known-field-accessor?_2878 s)
       (known-field-accessor-pos_2482 s)
       ($value
        (impersonate-ref
         known-field-accessor-pos_2482
         struct:known-field-accessor
         2
         s
         'known-field-accessor
         'pos))))))
(define known-field-accessor-known-immutable?_2377
  (|#%name|
   known-field-accessor-known-immutable?
   (record-accessor struct:known-field-accessor 3)))
(define known-field-accessor-known-immutable?
  (|#%name|
   known-field-accessor-known-immutable?
   (lambda (s)
     (if (known-field-accessor?_2878 s)
       (known-field-accessor-known-immutable?_2377 s)
       ($value
        (impersonate-ref
         known-field-accessor-known-immutable?_2377
         struct:known-field-accessor
         3
         s
         'known-field-accessor
         'known-immutable?))))))
(define finish_2908
  (make-struct-type-install-properties
   '(known-field-mutator)
   3
   0
   (if (struct-type? struct:known-mutator)
     struct:known-mutator
     (check-struct-type 'struct struct:known-mutator))
   null
   'prefab
   #f
   '(0 1 2)
   #f
   'known-field-mutator))
(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))
    3
    0
    #f
    '(0 1 2))
   #f
   #f
   3
   7))
(define effect_2603 (finish_2908 struct: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?_2222
  (|#%name|
   known-field-mutator?
   (record-predicate struct:known-field-mutator)))
(define known-field-mutator?
  (|#%name|
   known-field-mutator?
   (lambda (v)
     (if (known-field-mutator?_2222 v)
       #t
       ($value
        (if (impersonator? v)
          (known-field-mutator?_2222 (impersonator-val v))
          #f))))))
(define known-field-mutator-type-id_2433
  (|#%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?_2222 s)
       (known-field-mutator-type-id_2433 s)
       ($value
        (impersonate-ref
         known-field-mutator-type-id_2433
         struct:known-field-mutator
         0
         s
         'known-field-mutator
         'type-id))))))
(define known-field-mutator-authentic?_2735
  (|#%name|
   known-field-mutator-authentic?
   (record-accessor struct:known-field-mutator 1)))
(define known-field-mutator-authentic?
  (|#%name|
   known-field-mutator-authentic?
   (lambda (s)
     (if (known-field-mutator?_2222 s)
       (known-field-mutator-authentic?_2735 s)
       ($value
        (impersonate-ref
         known-field-mutator-authentic?_2735
         struct:known-field-mutator
         1
         s
         'known-field-mutator
         'authentic?))))))
(define known-field-mutator-pos_2749
  (|#%name|
   known-field-mutator-pos
   (record-accessor struct:known-field-mutator 2)))
(define known-field-mutator-pos
  (|#%name|
   known-field-mutator-pos
   (lambda (s)
     (if (known-field-mutator?_2222 s)
       (known-field-mutator-pos_2749 s)
       ($value
        (impersonate-ref
         known-field-mutator-pos_2749
         struct:known-field-mutator
         2
         s
         'known-field-mutator
         'pos))))))
(define finish_2543
  (make-struct-type-install-properties
   '(known-struct-constructor/need-imports)
   1
   0
   (if (struct-type? struct:known-struct-constructor)
     struct:known-struct-constructor
     (check-struct-type 'struct struct:known-struct-constructor))
   null
   'prefab
   #f
   '(0)
   #f
   'known-struct-constructor/need-imports))
(define struct:known-struct-constructor/need-imports
  (make-record-type-descriptor*
   'known-struct-constructor/need-imports
   (if (struct-type? struct:known-struct-constructor)
     struct:known-struct-constructor
     (check-struct-type 'struct struct:known-struct-constructor))
   (structure-type-lookup-prefab-uid
    'known-struct-constructor/need-imports
    (if (struct-type? struct:known-struct-constructor)
      struct:known-struct-constructor
      (check-struct-type 'struct struct:known-struct-constructor))
    1
    0
    #f
    '(0))
   #f
   #f
   1
   1))
(define effect_2146 (finish_2543 struct:known-struct-constructor/need-imports))
(define known-struct-constructor/need-imports
  (|#%name|
   known-struct-constructor/need-imports
   (record-constructor
    (make-record-constructor-descriptor
     struct:known-struct-constructor/need-imports
     #f
     #f))))
(define known-struct-constructor/need-imports?_2300
  (|#%name|
   known-struct-constructor/need-imports?
   (record-predicate struct:known-struct-constructor/need-imports)))
(define known-struct-constructor/need-imports?
  (|#%name|
   known-struct-constructor/need-imports?
   (lambda (v)
     (if (known-struct-constructor/need-imports?_2300 v)
       #t
       ($value
        (if (impersonator? v)
          (known-struct-constructor/need-imports?_2300 (impersonator-val v))
          #f))))))
(define known-struct-constructor/need-imports-needed_2757
  (|#%name|
   known-struct-constructor/need-imports-needed
   (record-accessor struct:known-struct-constructor/need-imports 0)))
(define known-struct-constructor/need-imports-needed
  (|#%name|
   known-struct-constructor/need-imports-needed
   (lambda (s)
     (if (known-struct-constructor/need-imports?_2300 s)
       (known-struct-constructor/need-imports-needed_2757 s)
       ($value
        (impersonate-ref
         known-struct-constructor/need-imports-needed_2757
         struct:known-struct-constructor/need-imports
         0
         s
         'known-struct-constructor/need-imports
         'needed))))))
(define finish_2626
  (make-struct-type-install-properties
   '(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 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 effect_3156 (finish_2626 struct: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?_2911
  (|#%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?_2911 v)
       #t
       ($value
        (if (impersonator? v)
          (known-struct-predicate/need-imports?_2911 (impersonator-val v))
          #f))))))
(define known-struct-predicate/need-imports-needed_2072
  (|#%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?_2911 s)
       (known-struct-predicate/need-imports-needed_2072 s)
       ($value
        (impersonate-ref
         known-struct-predicate/need-imports-needed_2072
         struct:known-struct-predicate/need-imports
         0
         s
         'known-struct-predicate/need-imports
         'needed))))))
(define finish_2444
  (make-struct-type-install-properties
   '(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 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 effect_2513 (finish_2444 struct: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?_2679
  (|#%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?_2679 v)
       #t
       ($value
        (if (impersonator? v)
          (known-field-accessor/need-imports?_2679 (impersonator-val v))
          #f))))))
(define known-field-accessor/need-imports-needed_2087
  (|#%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?_2679 s)
       (known-field-accessor/need-imports-needed_2087 s)
       ($value
        (impersonate-ref
         known-field-accessor/need-imports-needed_2087
         struct:known-field-accessor/need-imports
         0
         s
         'known-field-accessor/need-imports
         'needed))))))
(define finish_2153
  (make-struct-type-install-properties
   '(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 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 effect_2273 (finish_2153 struct: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?_2495
  (|#%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?_2495 v)
       #t
       ($value
        (if (impersonator? v)
          (known-field-mutator/need-imports?_2495 (impersonator-val v))
          #f))))))
(define known-field-mutator/need-imports-needed_2344
  (|#%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?_2495 s)
       (known-field-mutator/need-imports-needed_2344 s)
       ($value
        (impersonate-ref
         known-field-mutator/need-imports-needed_2344
         struct:known-field-mutator/need-imports
         0
         s
         'known-field-mutator/need-imports
         'needed))))))
(define finish_2492
  (make-struct-type-install-properties
   '(known-struct-type-property/immediate-guard)
   0
   0
   #f
   null
   'prefab
   #f
   '()
   #f
   'known-struct-type-property/immediate-guard))
(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 effect_2294
  (finish_2492 struct: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?_2536
  (|#%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?_2536 v)
       #t
       ($value
        (if (impersonator? v)
          (known-struct-type-property/immediate-guard?_2536
           (impersonator-val v))
          #f))))))
(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 finish_2816
  (make-struct-type-install-properties
   '(import)
   4
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1 2 3)
   #f
   'import))
(define struct:import
  (make-record-type-descriptor*
   'import
   #f
   (|#%nongenerative-uid| import)
   #f
   #f
   4
   0))
(define effect_2192 (finish_2816 struct:import))
(define import1.1
  (|#%name|
   import
   (record-constructor
    (make-record-constructor-descriptor struct:import #f #f))))
(define import?_2699 (|#%name| import? (record-predicate struct:import)))
(define import?
  (|#%name|
   import?
   (lambda (v)
     (if (import?_2699 v)
       #t
       ($value
        (if (impersonator? v) (import?_2699 (impersonator-val v)) #f))))))
(define import-grp_3110
  (|#%name| import-grp (record-accessor struct:import 0)))
(define import-grp
  (|#%name|
   import-grp
   (lambda (s)
     (if (import?_2699 s)
       (import-grp_3110 s)
       ($value
        (impersonate-ref import-grp_3110 struct:import 0 s 'import 'grp))))))
(define import-id_2226 (|#%name| import-id (record-accessor struct:import 1)))
(define import-id
  (|#%name|
   import-id
   (lambda (s)
     (if (import?_2699 s)
       (import-id_2226 s)
       ($value
        (impersonate-ref import-id_2226 struct:import 1 s 'import 'id))))))
(define import-int-id_2707
  (|#%name| import-int-id (record-accessor struct:import 2)))
(define import-int-id
  (|#%name|
   import-int-id
   (lambda (s)
     (if (import?_2699 s)
       (import-int-id_2707 s)
       ($value
        (impersonate-ref
         import-int-id_2707
         struct:import
         2
         s
         'import
         'int-id))))))
(define import-ext-id_2460
  (|#%name| import-ext-id (record-accessor struct:import 3)))
(define import-ext-id
  (|#%name|
   import-ext-id
   (lambda (s)
     (if (import?_2699 s)
       (import-ext-id_2460 s)
       ($value
        (impersonate-ref
         import-ext-id_2460
         struct:import
         3
         s
         'import
         'ext-id))))))
(define finish_1986
  (make-struct-type-install-properties
   '(import-group)
   6
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'import-group))
(define struct:import-group
  (make-record-type-descriptor*
   'import-group
   #f
   (|#%nongenerative-uid| import-group)
   #f
   #f
   6
   60))
(define effect_2739 (finish_1986 struct:import-group))
(define import-group2.1
  (|#%name|
   import-group
   (record-constructor
    (make-record-constructor-descriptor struct:import-group #f #f))))
(define import-group?_1821
  (|#%name| import-group? (record-predicate struct:import-group)))
(define import-group?
  (|#%name|
   import-group?
   (lambda (v)
     (if (import-group?_1821 v)
       #t
       ($value
        (if (impersonator? v)
          (import-group?_1821 (impersonator-val v))
          #f))))))
(define import-group-index_2302
  (|#%name| import-group-index (record-accessor struct:import-group 0)))
(define import-group-index
  (|#%name|
   import-group-index
   (lambda (s)
     (if (import-group?_1821 s)
       (import-group-index_2302 s)
       ($value
        (impersonate-ref
         import-group-index_2302
         struct:import-group
         0
         s
         'import-group
         'index))))))
(define import-group-key_2439
  (|#%name| import-group-key (record-accessor struct:import-group 1)))
(define import-group-key
  (|#%name|
   import-group-key
   (lambda (s)
     (if (import-group?_1821 s)
       (import-group-key_2439 s)
       ($value
        (impersonate-ref
         import-group-key_2439
         struct:import-group
         1
         s
         'import-group
         'key))))))
(define import-group-knowns/proc_2775
  (|#%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?_1821 s)
       (import-group-knowns/proc_2775 s)
       ($value
        (impersonate-ref
         import-group-knowns/proc_2775
         struct:import-group
         2
         s
         'import-group
         'knowns/proc))))))
(define import-group-converter_2731
  (|#%name| import-group-converter (record-accessor struct:import-group 3)))
(define import-group-converter
  (|#%name|
   import-group-converter
   (lambda (s)
     (if (import-group?_1821 s)
       (import-group-converter_2731 s)
       ($value
        (impersonate-ref
         import-group-converter_2731
         struct:import-group
         3
         s
         'import-group
         'converter))))))
(define import-group-import-keys_2577
  (|#%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?_1821 s)
       (import-group-import-keys_2577 s)
       ($value
        (impersonate-ref
         import-group-import-keys_2577
         struct:import-group
         4
         s
         'import-group
         'import-keys))))))
(define import-group-imports_2122
  (|#%name| import-group-imports (record-accessor struct:import-group 5)))
(define import-group-imports
  (|#%name|
   import-group-imports
   (lambda (s)
     (if (import-group?_1821 s)
       (import-group-imports_2122 s)
       ($value
        (impersonate-ref
         import-group-imports_2122
         struct:import-group
         5
         s
         'import-group
         'imports))))))
(define set-import-group-knowns/proc!_2971
  (|#%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?_1821 s)
       (set-import-group-knowns/proc!_2971 s v)
       ($value
        (impersonate-set!
         set-import-group-knowns/proc!_2971
         struct:import-group
         2
         2
         s
         v
         'import-group
         'knowns/proc))))))
(define set-import-group-converter!_2381
  (|#%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?_1821 s)
       (set-import-group-converter!_2381 s v)
       ($value
        (impersonate-set!
         set-import-group-converter!_2381
         struct:import-group
         3
         3
         s
         v
         'import-group
         'converter))))))
(define set-import-group-import-keys!_2611
  (|#%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?_1821 s)
       (set-import-group-import-keys!_2611 s v)
       ($value
        (impersonate-set!
         set-import-group-import-keys!_2611
         struct:import-group
         4
         4
         s
         v
         'import-group
         'import-keys))))))
(define set-import-group-imports!_2489
  (|#%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?_1821 s)
       (set-import-group-imports!_2489 s v)
       ($value
        (impersonate-set!
         set-import-group-imports!_2489
         struct:import-group
         5
         5
         s
         v
         'import-group
         'imports))))))
(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 finish_2351
  (make-struct-type-install-properties
   '(export)
   2
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'export))
(define struct:export
  (make-record-type-descriptor*
   'export
   #f
   (|#%nongenerative-uid| export)
   #f
   #f
   2
   0))
(define effect_2782 (finish_2351 struct:export))
(define export1.1
  (|#%name|
   export
   (record-constructor
    (make-record-constructor-descriptor struct:export #f #f))))
(define export?_2921 (|#%name| export? (record-predicate struct:export)))
(define export?
  (|#%name|
   export?
   (lambda (v)
     (if (export?_2921 v)
       #t
       ($value
        (if (impersonator? v) (export?_2921 (impersonator-val v)) #f))))))
(define export-id_2664 (|#%name| export-id (record-accessor struct:export 0)))
(define export-id
  (|#%name|
   export-id
   (lambda (s)
     (if (export?_2921 s)
       (export-id_2664 s)
       ($value
        (impersonate-ref export-id_2664 struct:export 0 s 'export 'id))))))
(define export-ext-id_2745
  (|#%name| export-ext-id (record-accessor struct:export 1)))
(define export-ext-id
  (|#%name|
   export-ext-id
   (lambda (s)
     (if (export?_2921 s)
       (export-ext-id_2745 s)
       ($value
        (impersonate-ref
         export-ext-id_2745
         struct:export
         1
         s
         'export
         'ext-id))))))
(define finish_2682
  (make-struct-type-install-properties
   '(too-early)
   2
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'too-early))
(define struct:too-early
  (make-record-type-descriptor*
   'too-early
   #f
   (|#%nongenerative-uid| too-early)
   #f
   #f
   2
   0))
(define effect_2833 (finish_2682 struct:too-early))
(define too-early1.1
  (|#%name|
   too-early
   (record-constructor
    (make-record-constructor-descriptor struct:too-early #f #f))))
(define too-early?_1816
  (|#%name| too-early? (record-predicate struct:too-early)))
(define too-early?
  (|#%name|
   too-early?
   (lambda (v)
     (if (too-early?_1816 v)
       #t
       ($value
        (if (impersonator? v) (too-early?_1816 (impersonator-val v)) #f))))))
(define too-early-name_2356
  (|#%name| too-early-name (record-accessor struct:too-early 0)))
(define too-early-name
  (|#%name|
   too-early-name
   (lambda (s)
     (if (too-early?_1816 s)
       (too-early-name_2356 s)
       ($value
        (impersonate-ref
         too-early-name_2356
         struct:too-early
         0
         s
         'too-early
         'name))))))
(define too-early-set!ed?_2625
  (|#%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?_1816 s)
       (too-early-set!ed?_2625 s)
       ($value
        (impersonate-ref
         too-early-set!ed?_2625
         struct:too-early
         1
         s
         'too-early
         'set!ed?))))))
(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 (begin-unsafe (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
  (|#%name|
   simple?
   (lambda (no-alloc?2_0
            pure?1_0
            result-arity3_0
            e7_0
            prim-knowns8_0
            knowns9_0
            imports10_0
            mutated11_0
            simples12_0
            unsafe-mode?13_0)
     (begin
       (letrec*
        ((simple?_0
          (|#%name|
           simple?
           (lambda (e_0 result-arity_0)
             (begin
               (let ((returns_0
                      (|#%name|
                       returns
                       (lambda (n_0)
                         (begin
                           (let ((or-part_0 (not result-arity_0)))
                             (if or-part_0
                               or-part_0
                               (eqv? n_0 result-arity_0))))))))
                 (let ((simple-begin?_0
                        (|#%name|
                         simple-begin?
                         (lambda (es_0)
                           (begin
                             (let ((c_0
                                    (hash-ref
                                     simples12_0
                                     e_0
                                     '#(unknown unknown unknown 1))))
                               (let ((r_0
                                      (vector-ref
                                       c_0
                                       (if pure?1_0 (if no-alloc?2_0 1 0) 2))))
                                 (let ((arity-match?_0
                                        (eqv?
                                         result-arity_0
                                         (vector-ref c_0 3))))
                                   (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
                                                       (car es_1)
                                                       result-arity_0)
                                                      (if (simple?_0
                                                           (car es_1)
                                                           #f)
                                                        (loop_0 (cdr es_1))
                                                        #f)))))))
                                             (loop_0 es_0))))
                                       (begin
                                         (hash-set!
                                          simples12_0
                                          e_0
                                          (if pure?1_0
                                            (if no-alloc?2_0
                                              (let ((app_0
                                                     (if arity-match?_0
                                                       (vector-ref c_0 0)
                                                       'unknown)))
                                                (vector
                                                 app_0
                                                 r_1
                                                 (if arity-match?_0
                                                   (vector-ref c_0 2)
                                                   'unknown)
                                                 result-arity_0))
                                              (let ((app_0
                                                     (if arity-match?_0
                                                       (vector-ref c_0 1)
                                                       'unknown)))
                                                (vector
                                                 r_1
                                                 app_0
                                                 (if arity-match?_0
                                                   (vector-ref c_0 2)
                                                   'unknown)
                                                 result-arity_0)))
                                            (let ((app_0
                                                   (if arity-match?_0
                                                     (vector-ref c_0 0)
                                                     'unknown)))
                                              (vector
                                               app_0
                                               (if arity-match?_0
                                                 (vector-ref c_0 1)
                                                 'unknown)
                                               r_1
                                               result-arity_0))))
                                         r_1))
                                     r_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)
                       (returns_0 1)
                       (if (if (eq? 'case-lambda hd_0) #t #f)
                         (returns_0 1)
                         (if (if (eq? 'quote hd_0) #t #f)
                           (returns_0 1)
                           (if (if (eq? '|#%variable-reference| hd_0) #t #f)
                             (returns_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
                                                                (begin-unsafe
                                                                 (null?
                                                                  (unwrap
                                                                   lst_0))))
                                                             (let ((v_0
                                                                    (if (begin-unsafe
                                                                         (pair?
                                                                          (unwrap
                                                                           lst_0)))
                                                                      (wrap-car
                                                                       lst_0)
                                                                      lst_0)))
                                                               (let ((rest_0
                                                                      (if (begin-unsafe
                                                                           (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)))
                                                                                             (begin-unsafe
                                                                                              (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)))
                                                   (begin-unsafe
                                                    (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
                                                             (begin-unsafe
                                                              (null?
                                                               (unwrap
                                                                lst_0))))
                                                          (let ((v_0
                                                                 (if (begin-unsafe
                                                                      (pair?
                                                                       (unwrap
                                                                        lst_0)))
                                                                   (wrap-car
                                                                    lst_0)
                                                                   lst_0)))
                                                            (let ((rest_0
                                                                   (if (begin-unsafe
                                                                        (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
                                                                        ((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
                                          simples12_0
                                          e_0
                                          '#(unknown unknown unknown 1))))
                                    (let ((r_0
                                           (vector-ref
                                            c_0
                                            (if pure?1_0
                                              (if no-alloc?2_0 1 0)
                                              2))))
                                      (let ((arity-match?_0
                                             (eqv?
                                              result-arity_0
                                              (vector-ref c_0 3))))
                                        (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
                                                                                        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
                                                    body_0
                                                    result-arity_0)
                                                   #f)))
                                            (begin
                                              (hash-set!
                                               simples12_0
                                               e_0
                                               (if pure?1_0
                                                 (if no-alloc?2_0
                                                   (let ((app_0
                                                          (if arity-match?_0
                                                            (vector-ref c_0 0)
                                                            'unknown)))
                                                     (vector
                                                      app_0
                                                      r_1
                                                      (if arity-match?_0
                                                        (vector-ref c_0 2)
                                                        'unknown)
                                                      result-arity_0))
                                                   (let ((app_0
                                                          (if arity-match?_0
                                                            (vector-ref c_0 1)
                                                            'unknown)))
                                                     (vector
                                                      r_1
                                                      app_0
                                                      (if arity-match?_0
                                                        (vector-ref c_0 2)
                                                        'unknown)
                                                      result-arity_0)))
                                                 (let ((app_0
                                                        (if arity-match?_0
                                                          (vector-ref c_0 0)
                                                          'unknown)))
                                                   (vector
                                                    app_0
                                                    (if arity-match?_0
                                                      (vector-ref c_0 1)
                                                      '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
                                                                  (begin-unsafe
                                                                   (null?
                                                                    (unwrap
                                                                     lst_0))))
                                                               (let ((v_0
                                                                      (if (begin-unsafe
                                                                           (pair?
                                                                            (unwrap
                                                                             lst_0)))
                                                                        (wrap-car
                                                                         lst_0)
                                                                        lst_0)))
                                                                 (let ((rest_0
                                                                        (if (begin-unsafe
                                                                             (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)))
                                                                                               (begin-unsafe
                                                                                                (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)))
                                                     (begin-unsafe
                                                      (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
                                                                       (begin-unsafe
                                                                        (null?
                                                                         (unwrap
                                                                          lst_0))))
                                                                    (let ((v_0
                                                                           (if (begin-unsafe
                                                                                (pair?
                                                                                 (unwrap
                                                                                  lst_0)))
                                                                             (wrap-car
                                                                              lst_0)
                                                                             lst_0)))
                                                                      (let ((rest_0
                                                                             (if (begin-unsafe
                                                                                  (pair?
                                                                                   (unwrap
                                                                                    lst_0)))
                                                                               (wrap-cdr
                                                                                lst_0)
                                                                               null)))
                                                                        (let ((v_1
                                                                               v_0))
                                                                          (let ((rhss_1
                                                                                 (let ((rhss_1
                                                                                        (let ((rhss17_0
                                                                                               (let ((d_1
                                                                                                      (cdr
                                                                                                       (unwrap
                                                                                                        v_1))))
                                                                                                 (let ((a_1
                                                                                                        (car
                                                                                                         (unwrap
                                                                                                          d_1))))
                                                                                                   a_1))))
                                                                                          (cons
                                                                                           rhss17_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
                                            simples12_0
                                            e_0
                                            '#(unknown unknown unknown 1))))
                                      (let ((r_0
                                             (vector-ref
                                              c_0
                                              (if pure?1_0
                                                (if no-alloc?2_0 1 0)
                                                2))))
                                        (let ((arity-match?_0
                                               (eqv?
                                                result-arity_0
                                                (vector-ref c_0 3))))
                                          (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
                                                                                      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
                                                      body_0
                                                      result-arity_0)
                                                     #f)))
                                              (begin
                                                (hash-set!
                                                 simples12_0
                                                 e_0
                                                 (if pure?1_0
                                                   (if no-alloc?2_0
                                                     (let ((app_0
                                                            (if arity-match?_0
                                                              (vector-ref
                                                               c_0
                                                               0)
                                                              'unknown)))
                                                       (vector
                                                        app_0
                                                        r_1
                                                        (if arity-match?_0
                                                          (vector-ref c_0 2)
                                                          'unknown)
                                                        result-arity_0))
                                                     (let ((app_0
                                                            (if arity-match?_0
                                                              (vector-ref
                                                               c_0
                                                               1)
                                                              'unknown)))
                                                       (vector
                                                        r_1
                                                        app_0
                                                        (if arity-match?_0
                                                          (vector-ref c_0 2)
                                                          'unknown)
                                                        result-arity_0)))
                                                   (let ((app_0
                                                          (if arity-match?_0
                                                            (vector-ref c_0 0)
                                                            'unknown)))
                                                     (vector
                                                      app_0
                                                      (if arity-match?_0
                                                        (vector-ref c_0 1)
                                                        '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
                                                                    (begin-unsafe
                                                                     (null?
                                                                      (unwrap
                                                                       lst_0))))
                                                                 (let ((v_0
                                                                        (if (begin-unsafe
                                                                             (pair?
                                                                              (unwrap
                                                                               lst_0)))
                                                                          (wrap-car
                                                                           lst_0)
                                                                          lst_0)))
                                                                   (let ((rest_0
                                                                          (if (begin-unsafe
                                                                               (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)))
                                                                                                   (begin-unsafe
                                                                                                    (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)))
                                                       (begin-unsafe
                                                        (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
                                                                 (begin-unsafe
                                                                  (null?
                                                                   (unwrap
                                                                    lst_0))))
                                                              (let ((v_0
                                                                     (if (begin-unsafe
                                                                          (pair?
                                                                           (unwrap
                                                                            lst_0)))
                                                                       (wrap-car
                                                                        lst_0)
                                                                       lst_0)))
                                                                (let ((rest_0
                                                                       (if (begin-unsafe
                                                                            (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
                                                                            ((idss18_0
                                                                              rhss19_0)
                                                                             (values
                                                                              (cons
                                                                               idss18_0
                                                                               idss_0)
                                                                              (cons
                                                                               rhss19_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
                                              simples12_0
                                              e_0
                                              '#(unknown unknown unknown 1))))
                                        (let ((r_0
                                               (vector-ref
                                                c_0
                                                (if pure?1_0
                                                  (if no-alloc?2_0 1 0)
                                                  2))))
                                          (let ((arity-match?_0
                                                 (eqv?
                                                  result-arity_0
                                                  (vector-ref c_0 3))))
                                            (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
                                                                                            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
                                                        body_0
                                                        result-arity_0)
                                                       #f)))
                                                (begin
                                                  (hash-set!
                                                   simples12_0
                                                   e_0
                                                   (if pure?1_0
                                                     (if no-alloc?2_0
                                                       (let ((app_0
                                                              (if arity-match?_0
                                                                (vector-ref
                                                                 c_0
                                                                 0)
                                                                'unknown)))
                                                         (vector
                                                          app_0
                                                          r_1
                                                          (if arity-match?_0
                                                            (vector-ref c_0 2)
                                                            'unknown)
                                                          result-arity_0))
                                                       (let ((app_0
                                                              (if arity-match?_0
                                                                (vector-ref
                                                                 c_0
                                                                 1)
                                                                'unknown)))
                                                         (vector
                                                          r_1
                                                          app_0
                                                          (if arity-match?_0
                                                            (vector-ref c_0 2)
                                                            'unknown)
                                                          result-arity_0)))
                                                     (let ((app_0
                                                            (if arity-match?_0
                                                              (vector-ref
                                                               c_0
                                                               0)
                                                              'unknown)))
                                                       (vector
                                                        app_0
                                                        (if arity-match?_0
                                                          (vector-ref c_0 1)
                                                          '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
                                                                      (begin-unsafe
                                                                       (null?
                                                                        (unwrap
                                                                         lst_0))))
                                                                   (let ((v_0
                                                                          (if (begin-unsafe
                                                                               (pair?
                                                                                (unwrap
                                                                                 lst_0)))
                                                                            (wrap-car
                                                                             lst_0)
                                                                            lst_0)))
                                                                     (let ((rest_0
                                                                            (if (begin-unsafe
                                                                                 (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)))
                                                                                                   (begin-unsafe
                                                                                                    (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)))
                                                         (begin-unsafe
                                                          (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
                                                                   (begin-unsafe
                                                                    (null?
                                                                     (unwrap
                                                                      lst_0))))
                                                                (let ((v_0
                                                                       (if (begin-unsafe
                                                                            (pair?
                                                                             (unwrap
                                                                              lst_0)))
                                                                         (wrap-car
                                                                          lst_0)
                                                                         lst_0)))
                                                                  (let ((rest_0
                                                                         (if (begin-unsafe
                                                                              (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
                                                                              ((ids20_0
                                                                                rhss21_0)
                                                                               (values
                                                                                (cons
                                                                                 ids20_0
                                                                                 ids_0)
                                                                                (cons
                                                                                 rhss21_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
                                                simples12_0
                                                e_0
                                                '#(unknown
                                                   unknown
                                                   unknown
                                                   1))))
                                          (let ((r_0
                                                 (vector-ref
                                                  c_0
                                                  (if pure?1_0
                                                    (if no-alloc?2_0 1 0)
                                                    2))))
                                            (let ((arity-match?_0
                                                   (eqv?
                                                    result-arity_0
                                                    (vector-ref c_0 3))))
                                              (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
                                                                                          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
                                                          body_0
                                                          result-arity_0)
                                                         #f)))
                                                  (begin
                                                    (hash-set!
                                                     simples12_0
                                                     e_0
                                                     (if pure?1_0
                                                       (if no-alloc?2_0
                                                         (let ((app_0
                                                                (if arity-match?_0
                                                                  (vector-ref
                                                                   c_0
                                                                   0)
                                                                  'unknown)))
                                                           (vector
                                                            app_0
                                                            r_1
                                                            (if arity-match?_0
                                                              (vector-ref
                                                               c_0
                                                               2)
                                                              'unknown)
                                                            result-arity_0))
                                                         (let ((app_0
                                                                (if arity-match?_0
                                                                  (vector-ref
                                                                   c_0
                                                                   1)
                                                                  'unknown)))
                                                           (vector
                                                            r_1
                                                            app_0
                                                            (if arity-match?_0
                                                              (vector-ref
                                                               c_0
                                                               2)
                                                              'unknown)
                                                            result-arity_0)))
                                                       (let ((app_0
                                                              (if arity-match?_0
                                                                (vector-ref
                                                                 c_0
                                                                 0)
                                                                'unknown)))
                                                         (vector
                                                          app_0
                                                          (if arity-match?_0
                                                            (vector-ref c_0 1)
                                                            '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))))
                                         (simple-begin?_0 es_0))
                                       (if (if (eq? 'begin-unsafe 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))))
                                           (simple-begin?_0 es_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
                                                      simples12_0
                                                      e_0
                                                      '#(unknown
                                                         unknown
                                                         unknown
                                                         1))))
                                                (let ((r_0
                                                       (vector-ref
                                                        c_0
                                                        (if pure?1_0
                                                          (if no-alloc?2_0 1 0)
                                                          2))))
                                                  (let ((arity-match?_0
                                                         (eqv?
                                                          result-arity_0
                                                          (vector-ref c_0 3))))
                                                    (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
                                                                  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
                                                                                              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!
                                                           simples12_0
                                                           e_0
                                                           (if pure?1_0
                                                             (if no-alloc?2_0
                                                               (let ((app_0
                                                                      (if arity-match?_0
                                                                        (vector-ref
                                                                         c_0
                                                                         0)
                                                                        'unknown)))
                                                                 (vector
                                                                  app_0
                                                                  r_1
                                                                  (if arity-match?_0
                                                                    (vector-ref
                                                                     c_0
                                                                     2)
                                                                    'unknown)
                                                                  result-arity_0))
                                                               (let ((app_0
                                                                      (if arity-match?_0
                                                                        (vector-ref
                                                                         c_0
                                                                         1)
                                                                        'unknown)))
                                                                 (vector
                                                                  r_1
                                                                  app_0
                                                                  (if arity-match?_0
                                                                    (vector-ref
                                                                     c_0
                                                                     2)
                                                                    'unknown)
                                                                  result-arity_0)))
                                                             (let ((app_0
                                                                    (if arity-match?_0
                                                                      (vector-ref
                                                                       c_0
                                                                       0)
                                                                      'unknown)))
                                                               (vector
                                                                app_0
                                                                (if arity-match?_0
                                                                  (vector-ref
                                                                   c_0
                                                                   1)
                                                                  '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)))
                                                                   (begin-unsafe
                                                                    (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 e_1 1)
                                                 (returns_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
                                                         simples12_0
                                                         e_0
                                                         '#(unknown
                                                            unknown
                                                            unknown
                                                            1))))
                                                   (let ((r_0
                                                          (vector-ref
                                                           c_0
                                                           (if pure?1_0
                                                             (if no-alloc?2_0
                                                               1
                                                               0)
                                                             2))))
                                                     (let ((arity-match?_0
                                                            (eqv?
                                                             result-arity_0
                                                             (vector-ref
                                                              c_0
                                                              3))))
                                                       (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
                                                                     (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
                                                                                                 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!
                                                              simples12_0
                                                              e_0
                                                              (if pure?1_0
                                                                (if no-alloc?2_0
                                                                  (let ((app_0
                                                                         (if arity-match?_0
                                                                           (vector-ref
                                                                            c_0
                                                                            0)
                                                                           'unknown)))
                                                                    (vector
                                                                     app_0
                                                                     r_1
                                                                     (if arity-match?_0
                                                                       (vector-ref
                                                                        c_0
                                                                        2)
                                                                       'unknown)
                                                                     result-arity_0))
                                                                  (let ((app_0
                                                                         (if arity-match?_0
                                                                           (vector-ref
                                                                            c_0
                                                                            1)
                                                                           'unknown)))
                                                                    (vector
                                                                     r_1
                                                                     app_0
                                                                     (if arity-match?_0
                                                                       (vector-ref
                                                                        c_0
                                                                        2)
                                                                       'unknown)
                                                                     result-arity_0)))
                                                                (let ((app_0
                                                                       (if arity-match?_0
                                                                         (vector-ref
                                                                          c_0
                                                                          0)
                                                                         'unknown)))
                                                                  (vector
                                                                   app_0
                                                                   (if arity-match?_0
                                                                     (vector-ref
                                                                      c_0
                                                                      1)
                                                                     '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
                                                            simples12_0
                                                            e_0
                                                            '#(unknown
                                                               unknown
                                                               unknown
                                                               1))))
                                                      (let ((r_0
                                                             (vector-ref
                                                              c_0
                                                              (if pure?1_0
                                                                (if no-alloc?2_0
                                                                  1
                                                                  0)
                                                                2))))
                                                        (let ((arity-match?_0
                                                               (eqv?
                                                                result-arity_0
                                                                (vector-ref
                                                                 c_0
                                                                 3))))
                                                          (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
                                                                                          knowns9_0
                                                                                          imports10_0
                                                                                          proc_1)))
                                                                                    (if or-part_0
                                                                                      or-part_0
                                                                                      (hash-ref
                                                                                       prim-knowns8_0
                                                                                       proc_1
                                                                                       #f)))))
                                                                             (if (if pure?1_0
                                                                                   (if (let ((or-part_0
                                                                                              (if no-alloc?2_0
                                                                                                (known-procedure/pure?
                                                                                                 v_0)
                                                                                                (known-procedure/allocates?
                                                                                                 v_0))))
                                                                                         (if or-part_0
                                                                                           or-part_0
                                                                                           (if unsafe-mode?13_0
                                                                                             (if (known-field-accessor?
                                                                                                  v_0)
                                                                                               (if (known-field-accessor-authentic?
                                                                                                    v_0)
                                                                                                 (known-field-accessor-known-immutable?
                                                                                                  v_0)
                                                                                                 #f)
                                                                                               #f)
                                                                                             #f)))
                                                                                     (returns_0
                                                                                      1)
                                                                                     #f)
                                                                                   (let ((or-part_0
                                                                                          (if (known-procedure/no-prompt?
                                                                                               v_0)
                                                                                            (returns_0
                                                                                             1)
                                                                                            #f)))
                                                                                     (if or-part_0
                                                                                       or-part_0
                                                                                       (let ((or-part_1
                                                                                              (if (known-procedure/no-prompt/multi?
                                                                                                   v_0)
                                                                                                (eqv?
                                                                                                 result-arity_0
                                                                                                 #f)
                                                                                                #f)))
                                                                                         (if or-part_1
                                                                                           or-part_1
                                                                                           (let ((or-part_2
                                                                                                  (if (known-field-accessor?
                                                                                                       v_0)
                                                                                                    (if (known-field-accessor-authentic?
                                                                                                         v_0)
                                                                                                      (returns_0
                                                                                                       1)
                                                                                                      #f)
                                                                                                    #f)))
                                                                                             (if or-part_2
                                                                                               or-part_2
                                                                                               (if (known-field-mutator?
                                                                                                    v_0)
                                                                                                 (if (known-field-mutator-authentic?
                                                                                                      v_0)
                                                                                                   (returns_0
                                                                                                    1)
                                                                                                   #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
                                                                               mutated11_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
                                                                                                          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!
                                                                 simples12_0
                                                                 e_0
                                                                 (if pure?1_0
                                                                   (if no-alloc?2_0
                                                                     (let ((app_0
                                                                            (if arity-match?_0
                                                                              (vector-ref
                                                                               c_0
                                                                               0)
                                                                              'unknown)))
                                                                       (vector
                                                                        app_0
                                                                        r_1
                                                                        (if arity-match?_0
                                                                          (vector-ref
                                                                           c_0
                                                                           2)
                                                                          'unknown)
                                                                        result-arity_0))
                                                                     (let ((app_0
                                                                            (if arity-match?_0
                                                                              (vector-ref
                                                                               c_0
                                                                               1)
                                                                              'unknown)))
                                                                       (vector
                                                                        r_1
                                                                        app_0
                                                                        (if arity-match?_0
                                                                          (vector-ref
                                                                           c_0
                                                                           2)
                                                                          'unknown)
                                                                        result-arity_0)))
                                                                   (let ((app_0
                                                                          (if arity-match?_0
                                                                            (vector-ref
                                                                             c_0
                                                                             0)
                                                                            'unknown)))
                                                                     (vector
                                                                      app_0
                                                                      (if arity-match?_0
                                                                        (vector-ref
                                                                         c_0
                                                                         1)
                                                                        '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 1)
                                                     (let ((or-part_0
                                                            (if (symbol? e_1)
                                                              (simple-mutated-state?
                                                               (hash-ref
                                                                mutated11_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))))))))))))))))))))))))
        (simple?_0 e7_0 result-arity3_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)))
                    (begin-unsafe
                     (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 finish_2858
  (make-struct-type-install-properties
   '(struct-type-info)
   11
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1 2 3 4 5 6 7 8 9 10)
   #f
   'struct-type-info))
(define struct:struct-type-info
  (make-record-type-descriptor*
   'struct-type-info
   #f
   (|#%nongenerative-uid| struct-type-info)
   #f
   #f
   11
   0))
(define effect_2037 (finish_2858 struct: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?_2591
  (|#%name| struct-type-info? (record-predicate struct:struct-type-info)))
(define struct-type-info?
  (|#%name|
   struct-type-info?
   (lambda (v)
     (if (struct-type-info?_2591 v)
       #t
       ($value
        (if (impersonator? v)
          (struct-type-info?_2591 (impersonator-val v))
          #f))))))
(define struct-type-info-name_2272
  (|#%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?_2591 s)
       (struct-type-info-name_2272 s)
       ($value
        (impersonate-ref
         struct-type-info-name_2272
         struct:struct-type-info
         0
         s
         'struct-type-info
         'name))))))
(define struct-type-info-parent_2983
  (|#%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?_2591 s)
       (struct-type-info-parent_2983 s)
       ($value
        (impersonate-ref
         struct-type-info-parent_2983
         struct:struct-type-info
         1
         s
         'struct-type-info
         'parent))))))
(define struct-type-info-immediate-field-count_2698
  (|#%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?_2591 s)
       (struct-type-info-immediate-field-count_2698 s)
       ($value
        (impersonate-ref
         struct-type-info-immediate-field-count_2698
         struct:struct-type-info
         2
         s
         'struct-type-info
         'immediate-field-count))))))
(define struct-type-info-field-count_2405
  (|#%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?_2591 s)
       (struct-type-info-field-count_2405 s)
       ($value
        (impersonate-ref
         struct-type-info-field-count_2405
         struct:struct-type-info
         3
         s
         'struct-type-info
         'field-count))))))
(define struct-type-info-pure-constructor?_2558
  (|#%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?_2591 s)
       (struct-type-info-pure-constructor?_2558 s)
       ($value
        (impersonate-ref
         struct-type-info-pure-constructor?_2558
         struct:struct-type-info
         4
         s
         'struct-type-info
         'pure-constructor?))))))
(define struct-type-info-authentic?_2530
  (|#%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?_2591 s)
       (struct-type-info-authentic?_2530 s)
       ($value
        (impersonate-ref
         struct-type-info-authentic?_2530
         struct:struct-type-info
         5
         s
         'struct-type-info
         'authentic?))))))
(define struct-type-info-sealed?_2632
  (|#%name|
   struct-type-info-sealed?
   (record-accessor struct:struct-type-info 6)))
(define struct-type-info-sealed?
  (|#%name|
   struct-type-info-sealed?
   (lambda (s)
     (if (struct-type-info?_2591 s)
       (struct-type-info-sealed?_2632 s)
       ($value
        (impersonate-ref
         struct-type-info-sealed?_2632
         struct:struct-type-info
         6
         s
         'struct-type-info
         'sealed?))))))
(define struct-type-info-prefab-immutables_2507
  (|#%name|
   struct-type-info-prefab-immutables
   (record-accessor struct:struct-type-info 7)))
(define struct-type-info-prefab-immutables
  (|#%name|
   struct-type-info-prefab-immutables
   (lambda (s)
     (if (struct-type-info?_2591 s)
       (struct-type-info-prefab-immutables_2507 s)
       ($value
        (impersonate-ref
         struct-type-info-prefab-immutables_2507
         struct:struct-type-info
         7
         s
         'struct-type-info
         'prefab-immutables))))))
(define struct-type-info-non-prefab-immutables_2796
  (|#%name|
   struct-type-info-non-prefab-immutables
   (record-accessor struct:struct-type-info 8)))
(define struct-type-info-non-prefab-immutables
  (|#%name|
   struct-type-info-non-prefab-immutables
   (lambda (s)
     (if (struct-type-info?_2591 s)
       (struct-type-info-non-prefab-immutables_2796 s)
       ($value
        (impersonate-ref
         struct-type-info-non-prefab-immutables_2796
         struct:struct-type-info
         8
         s
         'struct-type-info
         'non-prefab-immutables))))))
(define struct-type-info-constructor-name-expr_2430
  (|#%name|
   struct-type-info-constructor-name-expr
   (record-accessor struct:struct-type-info 9)))
(define struct-type-info-constructor-name-expr
  (|#%name|
   struct-type-info-constructor-name-expr
   (lambda (s)
     (if (struct-type-info?_2591 s)
       (struct-type-info-constructor-name-expr_2430 s)
       ($value
        (impersonate-ref
         struct-type-info-constructor-name-expr_2430
         struct:struct-type-info
         9
         s
         'struct-type-info
         'constructor-name-expr))))))
(define struct-type-info-rest_2501
  (|#%name|
   struct-type-info-rest
   (record-accessor struct:struct-type-info 10)))
(define struct-type-info-rest
  (|#%name|
   struct-type-info-rest
   (lambda (s)
     (if (struct-type-info?_2591 s)
       (struct-type-info-rest_2501 s)
       ($value
        (impersonate-ref
         struct-type-info-rest_2501
         struct:struct-type-info
         10
         s
         'struct-type-info
         'rest))))))
(define struct-type-info-rest-properties-list-pos 0)
(define make-struct-type-info
  (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)))
                                  (begin-unsafe
                                   (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)))
                                      (begin-unsafe
                                       (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)))
                                                    (begin-unsafe
                                                     (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?
                            (begin-unsafe
                             (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)
                       (if (<= (length rest_0) 6)
                         (let ((prefab-imms_0
                                (if (begin-unsafe
                                     (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)))
                                            (begin-unsafe
                                             (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)))
                                                        (begin-unsafe
                                                         (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)))
                                                                    (begin-unsafe
                                                                     (let ((app_0
                                                                            (unwrap
                                                                             'current-inspector)))
                                                                       (eq?
                                                                        app_0
                                                                        (unwrap
                                                                         a_2)))))
                                                                (let ((a_2
                                                                       (cdr
                                                                        p_2)))
                                                                  (begin-unsafe
                                                                   (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)))
                                                                      (begin-unsafe
                                                                       (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)))
                                                                              (begin-unsafe
                                                                               (let ((app_0
                                                                                      (unwrap
                                                                                       'prefab)))
                                                                                 (eq?
                                                                                  app_0
                                                                                  (unwrap
                                                                                   a_3)))))
                                                                          (let ((a_3
                                                                                 (cdr
                                                                                  p_3)))
                                                                            (begin-unsafe
                                                                             (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)))
                                                                                    (begin-unsafe
                                                                                     (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)))
                                                                                        (begin-unsafe
                                                                                         (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)))
                                                                        (begin-unsafe
                                                                         (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)))
                                                                                (begin-unsafe
                                                                                 (let ((app_0
                                                                                        (unwrap
                                                                                         'prefab)))
                                                                                   (eq?
                                                                                    app_0
                                                                                    (unwrap
                                                                                     a_3)))))
                                                                            (let ((a_3
                                                                                   (cdr
                                                                                    p_3)))
                                                                              (begin-unsafe
                                                                               (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)))
                                                                  (begin-unsafe
                                                                   (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)))
                                                                          (begin-unsafe
                                                                           (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)))
                                                                                  (begin-unsafe
                                                                                   (let ((app_0
                                                                                          (unwrap
                                                                                           'prefab)))
                                                                                     (eq?
                                                                                      app_0
                                                                                      (unwrap
                                                                                       a_3)))))
                                                                              (let ((a_3
                                                                                     (cdr
                                                                                      p_3)))
                                                                                (begin-unsafe
                                                                                 (let ((app_0
                                                                                        (unwrap
                                                                                         '())))
                                                                                   (eq?
                                                                                    app_0
                                                                                    (unwrap
                                                                                     a_3)))))
                                                                              #f)
                                                                            #f)))
                                                                      #f)
                                                                    #f)))
                                                            (let ((a_1
                                                                   (cdr p_1)))
                                                              (begin-unsafe
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_1)))))
                                                            #f)
                                                          #f)))
                                                    #f))
                                              '()
                                              #f)))))))))
                           (let ((parent-sti_0
                                  (if u-parent_0
                                    (begin-unsafe
                                     (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 ((includes-property?_0
                                      (|#%name|
                                       includes-property?
                                       (lambda (name_1)
                                         (begin
                                           (if (pair? rest_0)
                                             (let ((v_1 (car rest_0)))
                                               (let ((hd_1
                                                      (let ((p_0 (unwrap v_1)))
                                                        (if (pair? p_0)
                                                          (unwrap (car p_0))
                                                          #f))))
                                                 (if (if (eq? 'list hd_1)
                                                       (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
                                                                          (begin-unsafe
                                                                           (null?
                                                                            (unwrap
                                                                             lst_0))))
                                                                       (let ((v_2
                                                                              (if (begin-unsafe
                                                                                   (pair?
                                                                                    (unwrap
                                                                                     lst_0)))
                                                                                (wrap-car
                                                                                 lst_0)
                                                                                lst_0)))
                                                                         (let ((rest_1
                                                                                (if (begin-unsafe
                                                                                     (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)
                                                                                               (if (let ((a_1
                                                                                                          (car
                                                                                                           p_0)))
                                                                                                     (begin-unsafe
                                                                                                      (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)))
                                                                                                               (begin-unsafe
                                                                                                                (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_3)))
                                                                                          (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_1))))
                                                        (call-with-values
                                                         (lambda ()
                                                           (begin
                                                             (letrec*
                                                              ((for-loop_0
                                                                (|#%name|
                                                                 for-loop
                                                                 (lambda (props_0
                                                                          vals_0
                                                                          lst_0)
                                                                   (begin
                                                                     (if (not
                                                                          (begin-unsafe
                                                                           (null?
                                                                            (unwrap
                                                                             lst_0))))
                                                                       (let ((v_2
                                                                              (if (begin-unsafe
                                                                                   (pair?
                                                                                    (unwrap
                                                                                     lst_0)))
                                                                                (wrap-car
                                                                                 lst_0)
                                                                                lst_0)))
                                                                         (let ((rest_1
                                                                                (if (begin-unsafe
                                                                                     (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 ((d_1
                                                                                             (cdr
                                                                                              (unwrap
                                                                                               v_3))))
                                                                                        (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_1)))
                                                                               (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))))))
                                 (letrec*
                                  ((handle-proc-spec_0
                                    (|#%name|
                                     handle-proc-spec
                                     (lambda (proc-spec_0 imms_0)
                                       (begin
                                         (if (not proc-spec_0)
                                           imms_0
                                           (if (exact-nonnegative-integer?
                                                proc-spec_0)
                                             (cons proc-spec_0 imms_0)
                                             (let ((proc-spec_1
                                                    (unwrap proc-spec_0)))
                                               (if (symbol? proc-spec_1)
                                                 (let ((k_0
                                                        (begin-unsafe
                                                         (call-with-values
                                                          (lambda ()
                                                            (find-known+import
                                                             proc-spec_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 (not k_0)
                                                     #f
                                                     (if (known-literal? k_0)
                                                       (let ((v_1
                                                              (known-literal-value
                                                               k_0)))
                                                         (if (let ((or-part_0
                                                                    (not v_1)))
                                                               (if or-part_0
                                                                 or-part_0
                                                                 (exact-nonnegative-integer?
                                                                  v_1)))
                                                           (handle-proc-spec_0
                                                            v_1
                                                            imms_0)
                                                           #f))
                                                       (if (known-procedure?
                                                            k_0)
                                                         imms_0
                                                         #f))))
                                                 #f)))))))))
                                  (let ((constructor-name-expr_0
                                         (if (> (length rest_0) 5)
                                           (list-ref rest_0 5)
                                           #f)))
                                    (let ((non-prefab-imms_0
                                           (if (eq? prefab-imms_1 'non-prefab)
                                             (if (begin-unsafe
                                                  (let ((app_0 (unwrap '())))
                                                    (eq?
                                                     app_0
                                                     (unwrap rest_0))))
                                               '()
                                               (if (let ((p_0 (unwrap rest_0)))
                                                     (if (pair? p_0)
                                                       (let ((a_0 (cdr p_0)))
                                                         (begin-unsafe
                                                          (let ((app_0
                                                                 (unwrap '())))
                                                            (eq?
                                                             app_0
                                                             (unwrap a_0)))))
                                                       #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)
                                                               (let ((a_1
                                                                      (cdr
                                                                       p_1)))
                                                                 (begin-unsafe
                                                                  (let ((app_0
                                                                         (unwrap
                                                                          '())))
                                                                    (eq?
                                                                     app_0
                                                                     (unwrap
                                                                      a_1)))))
                                                               #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)
                                                                 (let ((a_1
                                                                        (cdr
                                                                         p_1)))
                                                                   (let ((p_2
                                                                          (unwrap
                                                                           a_1)))
                                                                     (if (pair?
                                                                          p_2)
                                                                       (let ((a_2
                                                                              (cdr
                                                                               p_2)))
                                                                         (begin-unsafe
                                                                          (let ((app_0
                                                                                 (unwrap
                                                                                  '())))
                                                                            (eq?
                                                                             app_0
                                                                             (unwrap
                                                                              a_2)))))
                                                                       #f)))
                                                                 #f)))
                                                           #f))
                                                     (let ((proc-spec_0
                                                            (let ((d_0
                                                                   (cdr
                                                                    (unwrap
                                                                     rest_0))))
                                                              (let ((d_1
                                                                     (cdr
                                                                      (unwrap
                                                                       d_0))))
                                                                (let ((a_0
                                                                       (car
                                                                        (unwrap
                                                                         d_1))))
                                                                  a_0)))))
                                                       (handle-proc-spec_0
                                                        proc-spec_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)
                                                                   (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)))
                                                                                               (begin-unsafe
                                                                                                (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)))
                                                                                                   (begin-unsafe
                                                                                                    (let ((app_0
                                                                                                           (unwrap
                                                                                                            '())))
                                                                                                      (eq?
                                                                                                       app_0
                                                                                                       (unwrap
                                                                                                        a_5)))))
                                                                                                 #f)))
                                                                                           #f)
                                                                                         #f)))
                                                                                 #t
                                                                                 #f)
                                                                               #f)))
                                                                         #f)))
                                                                   #f)))
                                                             #f))
                                                       (call-with-values
                                                        (lambda ()
                                                          (let ((d_0
                                                                 (cdr
                                                                  (unwrap
                                                                   rest_0))))
                                                            (let ((d_1
                                                                   (cdr
                                                                    (unwrap
                                                                     d_0))))
                                                              (let ((p_0
                                                                     (unwrap
                                                                      d_1)))
                                                                (let ((proc-spec_0
                                                                       (let ((a_0
                                                                              (car
                                                                               p_0)))
                                                                         a_0)))
                                                                  (let ((immutables_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 ((proc-spec_1
                                                                           proc-spec_0))
                                                                      (values
                                                                       proc-spec_1
                                                                       immutables_0))))))))
                                                        (case-lambda
                                                         ((proc-spec_0
                                                           immutables_0)
                                                          (handle-proc-spec_0
                                                           proc-spec_0
                                                           immutables_0))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args))))
                                                       #f)))))
                                             #f)))
                                      (if (if (eq? prefab-imms_1 'non-prefab)
                                            non-prefab-imms_0
                                            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
                                                       'prop:chaperone-unsafe-undefined))
                                                     #f)
                                                   #f)))
                                            (let ((app_2
                                                   (includes-property?_0
                                                    'prop:authentic)))
                                              (let ((app_3
                                                     (includes-property?_0
                                                      'prop:sealed)))
                                                (struct-type-info1.1
                                                 name_0
                                                 parent_0
                                                 fields_0
                                                 app_0
                                                 app_1
                                                 app_2
                                                 app_3
                                                 (if (eq?
                                                      prefab-imms_1
                                                      'non-prefab)
                                                   #f
                                                   prefab-imms_1)
                                                 non-prefab-imms_0
                                                 constructor-name-expr_0
                                                 rest_0)))))
                                        #f))))))))
                         #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)))
                          (begin-unsafe
                           (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)))
                              (begin-unsafe
                               (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 (begin-unsafe (null? (unwrap lst_0))))
                            (let ((v_0
                                   (if (begin-unsafe (pair? (unwrap lst_0)))
                                     (wrap-car lst_0)
                                     lst_0)))
                              (let ((rest_0
                                     (if (begin-unsafe (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)))
                                                          (begin-unsafe
                                                           (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)))
                                                                    (begin-unsafe
                                                                     (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 (begin-unsafe (null? (unwrap lst_0))))
                            (let ((v_0
                                   (if (begin-unsafe (pair? (unwrap lst_0)))
                                     (wrap-car lst_0)
                                     lst_0)))
                              (let ((rest_0
                                     (if (begin-unsafe (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)
           (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 ((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?
                                                          (begin-unsafe
                                                           (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
                                                        #f
                                                        #t
                                                        1
                                                        val_0
                                                        prim-knowns_0
                                                        knowns_0
                                                        imports_0
                                                        mutated_0
                                                        simples_0
                                                        #f)
                                                       #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)))
             vals_0
             #f))
          (args (raise-binding-result-arity-error 2 args))))
        (if (begin-unsafe
             (let ((app_0 (unwrap 'null))) (eq? app_0 (unwrap e_0))))
          null
          (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)))
                            (begin-unsafe
                             (let ((app_0 (unwrap '())))
                               (eq? app_0 (unwrap a_1)))))
                        (let ((a_1 (cdr p_0)))
                          (begin-unsafe
                           (let ((app_0 (unwrap '())))
                             (eq? app_0 (unwrap a_1)))))
                        #f)
                      #f)))
                #f)
            null
            #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)))
                                                  (begin-unsafe
                                                   (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)))
                                                (begin-unsafe
                                                 (let ((app_0 (unwrap '())))
                                                   (eq? app_0 (unwrap a_4)))))
                                              #f)))
                                        #f)
                                      #f)))
                              (let ((a_2 (cdr p_1)))
                                (begin-unsafe
                                 (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)))
                                          (begin-unsafe
                                           (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)))
                                                            (begin-unsafe
                                                             (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)))
                                                                (begin-unsafe
                                                                 (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)))
                                                            (begin-unsafe
                                                             (let ((app_0
                                                                    (unwrap
                                                                     '())))
                                                               (eq?
                                                                app_0
                                                                (unwrap
                                                                 a_6)))))
                                                          #f)))
                                                    #f)))
                                              #f)
                                            #f)))
                                      #f)
                                    #f)))
                            (let ((a_2 (cdr p_1)))
                              (begin-unsafe
                               (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 register-literal-serialization
  (lambda (q_0 serializable?-box_0 datum-intern?_0)
    (letrec*
     ((check-register_0
       (|#%name|
        check-register
        (lambda (q_1 seen_0)
          (begin
            (let ((register!_0
                   (|#%name|
                    register!
                    (lambda (q_2)
                      (begin
                        (begin
                          (if (unbox serializable?-box_0)
                            (void)
                            (set-box! serializable?-box_0 (make-hasheq)))
                          (hash-set! (unbox serializable?-box_0) q_2 #t)))))))
              (if (symbol? q_1)
                (if (let ((or-part_0 (symbol-interned? q_1)))
                      (if or-part_0 or-part_0 (symbol-unreadable? q_1)))
                  (void)
                  (register!_0 q_1))
                (if (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 (eof-object? q_1)))
                                      (if or-part_4
                                        or-part_4
                                        (let ((or-part_5 (void? q_1)))
                                          (if or-part_5
                                            or-part_5
                                            (eq?
                                             q_1
                                             unsafe-undefined)))))))))))))
                  (void)
                  (if (let ((or-part_0 (string? q_1)))
                        (if or-part_0 or-part_0 (bytes? q_1)))
                    (if datum-intern?_0 (register!_0 q_1) (void))
                    (if (pair? q_1)
                      (if (hash-ref seen_0 q_1 #f)
                        (raise-arguments-error
                         'compile
                         "cannot compile cyclic value"
                         "value"
                         q_1)
                        (let ((seen_1 (hash-set seen_0 q_1 #t)))
                          (begin
                            (check-register_0 (car q_1) seen_1)
                            (check-register_0 (cdr q_1) seen_1))))
                      (if (vector? q_1)
                        (if (hash-ref seen_0 q_1 #f)
                          (raise-arguments-error
                           'compile
                           "cannot compile cyclic value"
                           "value"
                           q_1)
                          (let ((seen_1 (hash-set seen_0 q_1 #t)))
                            (begin
                              (call-with-values
                               (lambda ()
                                 (begin
                                   (check-vector q_1)
                                   (values q_1 (unsafe-vector-length q_1))))
                               (case-lambda
                                ((vec_0 len_0)
                                 (begin
                                   #f
                                   (letrec*
                                    ((for-loop_0
                                      (|#%name|
                                       for-loop
                                       (lambda (pos_0)
                                         (begin
                                           (if (unsafe-fx< pos_0 len_0)
                                             (let ((e_0
                                                    (unsafe-vector-ref
                                                     vec_0
                                                     pos_0)))
                                               (begin
                                                 (check-register_0 e_0 seen_1)
                                                 (for-loop_0
                                                  (unsafe-fx+ 1 pos_0))))
                                             (values)))))))
                                    (for-loop_0 0))))
                                (args
                                 (raise-binding-result-arity-error 2 args))))
                              (void))))
                        (if (hash? q_1)
                          (begin
                            (register!_0 q_1)
                            (if (hash-ref seen_0 q_1 #f)
                              (raise-arguments-error
                               'compile
                               "cannot compile cyclic value"
                               "value"
                               q_1)
                              (let ((seen_1 (hash-set seen_0 q_1 #t)))
                                (begin
                                  (begin
                                    (letrec*
                                     ((for-loop_0
                                       (|#%name|
                                        for-loop
                                        (lambda (i_0)
                                          (begin
                                            (if i_0
                                              (call-with-values
                                               (lambda ()
                                                 (hash-iterate-key+value
                                                  q_1
                                                  i_0))
                                               (case-lambda
                                                ((k_0 v_0)
                                                 (begin
                                                   (begin
                                                     (check-register_0
                                                      k_0
                                                      seen_1)
                                                     (check-register_0
                                                      v_0
                                                      seen_1))
                                                   (for-loop_0
                                                    (hash-iterate-next
                                                     q_1
                                                     i_0))))
                                                (args
                                                 (raise-binding-result-arity-error
                                                  2
                                                  args))))
                                              (values)))))))
                                     (for-loop_0 (hash-iterate-first q_1))))
                                  (void)))))
                          (if (box? q_1)
                            (if (hash-ref seen_0 q_1 #f)
                              (raise-arguments-error
                               'compile
                               "cannot compile cyclic value"
                               "value"
                               q_1)
                              (let ((seen_1 (hash-set seen_0 q_1 #t)))
                                (check-register_0 (unbox q_1) seen_1)))
                            (if (srcloc? q_1)
                              (begin (register!_0 q_1) (srcloc-source q_1))
                              (if (prefab-struct-key q_1)
                                (begin
                                  (register!_0 q_1)
                                  (if (hash-ref seen_0 q_1 #f)
                                    (raise-arguments-error
                                     'compile
                                     "cannot compile cyclic value"
                                     "value"
                                     q_1)
                                    (let ((seen_1 (hash-set seen_0 q_1 #t)))
                                      (check-register_0
                                       (struct->vector q_1)
                                       seen_1))))
                                (register!_0 q_1))))))))))))))))
     (check-register_0 q_0 hash2610))))
(define lambda?.1
  (|#%name|
   lambda?
   (lambda (simple?1_0 v3_0)
     (begin
       (let ((hd_0
              (let ((p_0 (unwrap v3_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 v3_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)))
                                                         (begin-unsafe
                                                          (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)))
                                                       (begin-unsafe
                                                        (let ((app_0
                                                               (unwrap '())))
                                                          (eq?
                                                           app_0
                                                           (unwrap a_4)))))
                                                     #f)))
                                               #f)
                                             #f)))
                                     (let ((a_2 (cdr p_1)))
                                       (begin-unsafe
                                        (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)))
                                   (begin-unsafe
                                    (let ((app_0 (unwrap '())))
                                      (eq? app_0 (unwrap a_2)))))
                                 #f)))
                           #f)
                         #f)))
                   #f)
               (call-with-values
                (lambda ()
                  (let ((d_0 (cdr (unwrap v3_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?1_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 v3_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)))
                                                           (begin-unsafe
                                                            (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)))
                                                         (begin-unsafe
                                                          (let ((app_0
                                                                 (unwrap '())))
                                                            (eq?
                                                             app_0
                                                             (unwrap a_4)))))
                                                       #f)))
                                                 #f)
                                               #f)))
                                       (let ((a_2 (cdr p_1)))
                                         (begin-unsafe
                                          (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)))
                                     (begin-unsafe
                                      (let ((app_0 (unwrap '())))
                                        (eq? app_0 (unwrap a_2)))))
                                   #f)))
                             #f)
                           #f)))
                     #f)
                 (call-with-values
                  (lambda ()
                    (let ((d_0 (cdr (unwrap v3_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?1_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 v3_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)))
                                                         (begin-unsafe
                                                          (let ((app_0
                                                                 (unwrap '())))
                                                            (eq?
                                                             app_0
                                                             (unwrap a_4)))))
                                                       #f)))
                                                 #f)))
                                         (let ((a_2 (cdr p_1)))
                                           (begin-unsafe
                                            (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)))
                                       (begin-unsafe
                                        (let ((app_0 (unwrap '())))
                                          (eq? app_0 (unwrap a_2)))))
                                     #f)))
                               #f)
                             #f)))
                       #f)
                   (call-with-values
                    (lambda ()
                      (let ((d_0 (cdr (unwrap v3_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?1_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 v3_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)))
                                                           (begin-unsafe
                                                            (let ((app_0
                                                                   (unwrap
                                                                    '())))
                                                              (eq?
                                                               app_0
                                                               (unwrap a_4)))))
                                                         #f)))
                                                   #f)))
                                           (let ((a_2 (cdr p_1)))
                                             (begin-unsafe
                                              (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)))
                                         (begin-unsafe
                                          (let ((app_0 (unwrap '())))
                                            (eq? app_0 (unwrap a_2)))))
                                       #f)))
                                 #f)
                               #f)))
                         #f)
                     (call-with-values
                      (lambda ()
                        (let ((d_0 (cdr (unwrap v3_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?1_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 v3_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)))
                                         (begin-unsafe
                                          (let ((app_0 (unwrap '())))
                                            (eq? app_0 (unwrap a_2)))))
                                       #f)))
                                 #f)))
                           #f)
                       (let ((body_0
                              (let ((d_0 (cdr (unwrap v3_0))))
                                (let ((d_1 (cdr (unwrap d_0))))
                                  (let ((a_0 (car (unwrap d_1)))) a_0)))))
                         (if (not simple?1_0) (lambda?.1 #f body_0) #f))
                       (if (if (eq? 'letrec-values hd_0)
                             (let ((a_0 (cdr (unwrap v3_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)))
                                           (begin-unsafe
                                            (let ((app_0 (unwrap '())))
                                              (eq? app_0 (unwrap a_2)))))
                                         #f)))
                                   #f)))
                             #f)
                         (let ((body_0
                                (let ((d_0 (cdr (unwrap v3_0))))
                                  (let ((d_1 (cdr (unwrap d_0))))
                                    (let ((a_0 (car (unwrap d_1)))) a_0)))))
                           (if (not simple?1_0) (lambda?.1 #f body_0) #f))
                         (if (if (eq? 'begin hd_0)
                               (let ((a_0 (cdr (unwrap v3_0))))
                                 (let ((p_0 (unwrap a_0)))
                                   (if (pair? p_0)
                                     (let ((a_1 (cdr p_0)))
                                       (begin-unsafe
                                        (let ((app_0 (unwrap '())))
                                          (eq? app_0 (unwrap a_1)))))
                                     #f)))
                               #f)
                           (let ((body_0
                                  (let ((d_0 (cdr (unwrap v3_0))))
                                    (let ((a_0 (car (unwrap d_0)))) a_0))))
                             (lambda?.1 simple?1_0 body_0))
                           (if (if (eq? 'begin hd_0) #t #f)
                             (let ((bodys_0
                                    (let ((d_0 (cdr (unwrap v3_0)))) d_0)))
                               (if (not simple?1_0)
                                 (letrec*
                                  ((loop_0
                                    (|#%name|
                                     loop
                                     (lambda (bodys_1)
                                       (begin
                                         (if (null? (cdr bodys_1))
                                           (let ((temp31_0 (car bodys_1)))
                                             (lambda?.1 simple?1_0 temp31_0))
                                           (loop_0 (cdr bodys_1))))))))
                                  (loop_0 bodys_0))
                                 #f))
                             (if (if (eq? 'values hd_0)
                                   (let ((a_0 (cdr (unwrap v3_0))))
                                     (let ((p_0 (unwrap a_0)))
                                       (if (pair? p_0)
                                         (let ((a_1 (cdr p_0)))
                                           (begin-unsafe
                                            (let ((app_0 (unwrap '())))
                                              (eq? app_0 (unwrap a_1)))))
                                         #f)))
                                   #f)
                               (let ((body_0
                                      (let ((d_0 (cdr (unwrap v3_0))))
                                        (let ((a_0 (car (unwrap d_0)))) a_0))))
                                 (lambda?.1 simple?1_0 body_0))
                               #f))))))))))))))))
(define let-lambda?.1
  (|#%name|
   let-lambda?
   (lambda (simple?5_0 id7_0 rhs8_0 body9_0)
     (begin
       (let ((or-part_0
              (if (begin-unsafe
                   (let ((app_0 (unwrap id7_0))) (eq? app_0 (unwrap body9_0))))
                (lambda?.1 simple?5_0 rhs8_0)
                #f)))
         (if or-part_0
           or-part_0
           (if (not simple?5_0) (lambda?.1 simple?5_0 body9_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)))
                                                      (begin-unsafe
                                                       (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)))
                                                    (begin-unsafe
                                                     (let ((app_0
                                                            (unwrap '())))
                                                       (eq?
                                                        app_0
                                                        (unwrap a_4)))))
                                                  #f)))
                                            #f)
                                          #f)))
                                  (let ((a_2 (cdr p_1)))
                                    (begin-unsafe
                                     (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)))
                                (begin-unsafe
                                 (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)))
                                                        (begin-unsafe
                                                         (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)))
                                                      (begin-unsafe
                                                       (let ((app_0
                                                              (unwrap '())))
                                                         (eq?
                                                          app_0
                                                          (unwrap a_4)))))
                                                    #f)))
                                              #f)
                                            #f)))
                                    (let ((a_2 (cdr p_1)))
                                      (begin-unsafe
                                       (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)))
                                  (begin-unsafe
                                   (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)))
                                                      (begin-unsafe
                                                       (let ((app_0
                                                              (unwrap '())))
                                                         (eq?
                                                          app_0
                                                          (unwrap a_4)))))
                                                    #f)))
                                              #f)))
                                      (let ((a_2 (cdr p_1)))
                                        (begin-unsafe
                                         (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)))
                                    (begin-unsafe
                                     (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)))
                                                        (begin-unsafe
                                                         (let ((app_0
                                                                (unwrap '())))
                                                           (eq?
                                                            app_0
                                                            (unwrap a_4)))))
                                                      #f)))
                                                #f)))
                                        (let ((a_2 (cdr p_1)))
                                          (begin-unsafe
                                           (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)))
                                      (begin-unsafe
                                       (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)))
                                      (begin-unsafe
                                       (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)))
                                        (begin-unsafe
                                         (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)))
                                          (begin-unsafe
                                           (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)))
                                            (begin-unsafe
                                             (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)))
                                        (begin-unsafe
                                         (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? 'begin hd_0) #t #f)
                              (let ((bodys_0
                                     (let ((d_0 (cdr (unwrap v_0)))) d_0)))
                                (letrec*
                                 ((loop_0
                                   (|#%name|
                                    loop
                                    (lambda (bodys_1)
                                      (begin
                                        (if (null? (cdr bodys_1))
                                          (extract-lambda* (car bodys_1))
                                          (loop_0 (cdr bodys_1))))))))
                                 (loop_0 bodys_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)))
                                            (begin-unsafe
                                             (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 (begin-unsafe
         (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 (begin-unsafe (null? (unwrap lst_0))))
                              (let ((v_1
                                     (if (begin-unsafe (pair? (unwrap lst_0)))
                                       (wrap-car lst_0)
                                       lst_0)))
                                (let ((rest_0
                                       (if (begin-unsafe
                                            (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
                                         (begin-unsafe (null? (unwrap lst_0))))
                                      (let ((v_1
                                             (if (begin-unsafe
                                                  (pair? (unwrap lst_0)))
                                               (wrap-car lst_0)
                                               lst_0)))
                                        (let ((rest_0
                                               (if (begin-unsafe
                                                    (pair? (unwrap lst_0)))
                                                 (wrap-cdr lst_0)
                                                 null)))
                                          (let ((v_2 v_1))
                                            (let ((argss_1
                                                   (let ((argss_1
                                                          (let ((argss39_0
                                                                 (let ((a_0
                                                                        (car
                                                                         (unwrap
                                                                          v_2))))
                                                                   a_0)))
                                                            (cons
                                                             argss39_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 (begin-unsafe (null? (unwrap args_0)))
      1
      (if (begin-unsafe (pair? (unwrap args_0)))
        (arithmetic-shift (args-arity-mask (wrap-cdr args_0)) 1)
        -1))))
(define try-fold-primitive
  (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
                             (lambda args_0 (error "missing")))
                            vals_0)))
                      (begin
                        (|#%app| check-result_0 result_0)
                        (list (wrap-literal result_0))))))))
              #f)))))))
(define limit-check
  (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)))
              (lambda (v_0)
                (if (fixnum-for-every-system? v_0)
                  (void)
                  (error "result is not a fixnum for every system")))
              #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)))
                                (begin-unsafe
                                 (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)))
                                    (begin-unsafe
                                     (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)))
                                        (begin-unsafe
                                         (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)))
                        (begin-unsafe
                         (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)))
                          (begin-unsafe
                           (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))))
                (if (lambda?.1 #f e_0)
                  (call-with-values
                   (lambda () (extract-lambda e_0))
                   (case-lambda
                    ((lam_0 inlinable?_0)
                     (if inlinable?_0 #t (list* 'begin e_0 '(#t))))
                    (args (raise-binding-result-arity-error 2 args))))
                  (let ((u_0 (unwrap e_0)))
                    (if (symbol? u_0)
                      (let ((k_0
                             (begin-unsafe
                              (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) #t #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)))
                         (call-with-values
                          (lambda ()
                            (let ((d_1 (cdr p_0)))
                              (let ((p_1 (unwrap d_1)))
                                (let ((n_0 (let ((a_0 (car p_1))) a_0)))
                                  (let ((opt_0 (let ((d_2 (cdr p_1))) d_2)))
                                    (let ((n_1 n_0)) (values n_1 opt_0)))))))
                          (case-lambda
                           ((n_0 opt_0)
                            (let ((e_1 e_0)) (values e_1 n_0 opt_0)))
                           (args
                            (raise-binding-result-arity-error 2 args))))))))
                 (case-lambda
                  ((e_0 n_0 opt_0)
                   (let ((u-n_0 (unwrap n_0)))
                     (if (if (exact-nonnegative-integer? n_0)
                           (let ((or-part_0 (null? opt_0)))
                             (if or-part_0
                               or-part_0
                               (if (null? (cdr opt_0))
                                 (literal? (car opt_0))
                                 #f)))
                           #f)
                       (if (lambda?.1 #f e_0)
                         (call-with-values
                          (lambda () (extract-lambda e_0))
                          (case-lambda
                           ((lam_0 inlinable?_0)
                            (let ((inc?_0
                                   (bitwise-bit-set?
                                    (lambda-arity-mask lam_0)
                                    n_0)))
                              (if inlinable?_0
                                inc?_0
                                (list 'begin e_0 inc?_0))))
                           (args (raise-binding-result-arity-error 2 args))))
                         (let ((u_0 (unwrap e_0)))
                           (if (symbol? u_0)
                             (let ((k_0
                                    (begin-unsafe
                                     (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)
                                 (bitwise-bit-set?
                                  (known-procedure-arity-mask k_0)
                                  u-n_0)
                                 v_0))
                             v_0)))
                       v_0)))
                  (args (raise-binding-result-arity-error 3 args))))
                (if (if (eq? 'procedure-specialize 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)))
                              (begin-unsafe
                               (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))))
                    (if (lambda?.1 #f e_0) e_0 v_0))
                  (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*
  (lambda (v_0
           prim-knowns_0
           primitives_0
           knowns_0
           imports_0
           mutated_0
           unsafe-mode?_0)
    (letrec*
     ((optimize*_0
       (|#%name|
        optimize*
        (lambda (v_1)
          (begin
            (let ((new-v_0
                   (reannotate
                    v_1
                    (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)
                                  (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 ((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 body_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
                                                 (begin-unsafe
                                                  (null? (unwrap lst_0))))
                                              (let ((v_2
                                                     (if (begin-unsafe
                                                          (pair?
                                                           (unwrap lst_0)))
                                                       (wrap-car lst_0)
                                                       lst_0)))
                                                (let ((rest_0
                                                       (if (begin-unsafe
                                                            (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)
                                                                      (let ((a_1
                                                                             (cdr
                                                                              p_0)))
                                                                        (wrap-list?
                                                                         a_1))
                                                                      #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 (formalss_0 bodys_0 lst_0)
                                          (begin
                                            (if (not
                                                 (begin-unsafe
                                                  (null? (unwrap lst_0))))
                                              (let ((v_2
                                                     (if (begin-unsafe
                                                          (pair?
                                                           (unwrap lst_0)))
                                                       (wrap-car lst_0)
                                                       lst_0)))
                                                (let ((rest_0
                                                       (if (begin-unsafe
                                                            (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 ((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
                                                            ((formalss4_0
                                                              bodys5_0)
                                                             (values
                                                              (cons
                                                               formalss4_0
                                                               formalss_0)
                                                              (cons
                                                               bodys5_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
                                                                    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 v_1)
                            (if (if (eq? 'letrec-values hd_0) #t #f)
                              (optimize*-let_0 v_1)
                              (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)))
                                                        (begin-unsafe
                                                         (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 (optimize*_0 tst_0)))
                                     (let ((app_1 (optimize*_0 thn_0)))
                                       (list
                                        'if
                                        app_0
                                        app_1
                                        (optimize*_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_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)))
                                                          (begin-unsafe
                                                           (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 ((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 key_0)))
                                       (let ((app_1 (optimize*_0 val_0)))
                                         (list
                                          'with-continuation-mark
                                          app_0
                                          app_1
                                          (optimize*_0 body_0)))))
                                    (args
                                     (raise-binding-result-arity-error
                                      3
                                      args))))
                                  (if (if (eq? 'begin hd_0)
                                        (let ((a_0 (cdr (unwrap v_1))))
                                          (wrap-list? a_0))
                                        #f)
                                    (let ((body_0
                                           (let ((d_0 (cdr (unwrap v_1))))
                                             (unwrap-list d_0))))
                                      (list* 'begin (optimize*-body_0 body_0)))
                                    (if (if (eq? 'begin-unsafe hd_0)
                                          (let ((a_0 (cdr (unwrap v_1))))
                                            (wrap-list? a_0))
                                          #f)
                                      (let ((body_0
                                             (let ((d_0 (cdr (unwrap v_1))))
                                               (unwrap-list d_0))))
                                        (list*
                                         'begin-unsafe
                                         (optimize*-body_0 body_0)))
                                      (if (if (eq? 'begin0 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 ((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 e_0)))
                                             (list*
                                              'begin0
                                              app_0
                                              (optimize*-body_0 body_0))))
                                          (args
                                           (raise-binding-result-arity-error
                                            2
                                            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)))
                                                            (begin-unsafe
                                                             (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)
                                             (list
                                              'set!
                                              id_0
                                              (optimize*_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_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)))
                                                                      (begin-unsafe
                                                                       (let ((app_0
                                                                              (unwrap
                                                                               '|#%variable-reference|)))
                                                                         (eq?
                                                                          app_0
                                                                          (unwrap
                                                                           a_2)))))
                                                                  (let ((a_2
                                                                         (cdr
                                                                          p_1)))
                                                                    (begin-unsafe
                                                                     (let ((app_0
                                                                            (unwrap
                                                                             '())))
                                                                       (eq?
                                                                        app_0
                                                                        (unwrap
                                                                         a_2)))))
                                                                  #f)
                                                                #f)))
                                                        (let ((a_1 (cdr p_0)))
                                                          (begin-unsafe
                                                           (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_1))))
                                                    (begin-unsafe
                                                     (let ((app_0
                                                            (unwrap '())))
                                                       (eq?
                                                        app_0
                                                        (unwrap a_0)))))
                                                  #f)
                                              v_1
                                              (if (if (eq?
                                                       '|#%variable-reference|
                                                       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)))
                                                            (begin-unsafe
                                                             (let ((app_0
                                                                    (unwrap
                                                                     '())))
                                                               (eq?
                                                                app_0
                                                                (unwrap
                                                                 a_1)))))
                                                          #f)))
                                                    #f)
                                                (let ((id_0
                                                       (let ((d_0
                                                              (cdr
                                                               (unwrap v_1))))
                                                         (let ((a_0
                                                                (car
                                                                 (unwrap
                                                                  d_0))))
                                                           a_0))))
                                                  v_1)
                                                (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)))
                                                              (begin-unsafe
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_1)))))
                                                            #f)))
                                                      #f)
                                                  v_1
                                                  (if (let ((p_0 (unwrap v_1)))
                                                        (if (pair? p_0)
                                                          (let ((a_0
                                                                 (cdr p_0)))
                                                            (wrap-list? a_0))
                                                          #f))
                                                    (call-with-values
                                                     (lambda ()
                                                       (let ((p_0
                                                              (unwrap v_1)))
                                                         (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
                                                               rator_0)))
                                                         (list*
                                                          app_0
                                                          (optimize*-body_0
                                                           exps_0))))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        2
                                                        args))))
                                                    v_1)))))))))))))))))))
              (optimize
               new-v_0
               prim-knowns_0
               primitives_0
               knowns_0
               imports_0
               mutated_0))))))
      (optimize*-body_0
       (|#%name|
        optimize*-body
        (lambda (body_0)
          (begin
            (reverse$1
             (begin
               (letrec*
                ((for-loop_0
                  (|#%name|
                   for-loop
                   (lambda (fold-var_0 lst_0)
                     (begin
                       (if (not (begin-unsafe (null? (unwrap lst_0))))
                         (let ((v_1
                                (if (begin-unsafe (pair? (unwrap lst_0)))
                                  (wrap-car lst_0)
                                  lst_0)))
                           (let ((rest_0
                                  (if (begin-unsafe (pair? (unwrap lst_0)))
                                    (wrap-cdr lst_0)
                                    null)))
                             (let ((v_2 v_1))
                               (let ((fold-var_1
                                      (let ((fold-var_1
                                             (cons
                                              (optimize*_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 body_0))))))))
      (optimize*-let_0
       (|#%name|
        optimize*-let
        (lambda (v_1)
          (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
                                                 (begin-unsafe
                                                  (null? (unwrap lst_0))))
                                              (let ((v_2
                                                     (if (begin-unsafe
                                                          (pair?
                                                           (unwrap lst_0)))
                                                       (wrap-car lst_0)
                                                       lst_0)))
                                                (let ((rest_0
                                                       (if (begin-unsafe
                                                            (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)))
                                                                              (begin-unsafe
                                                                               (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))
                            (let ((a_1 (cdr p_1))) (wrap-list? a_1))
                            #f)
                          #f)))
                    #f))
              (call-with-values
               (lambda ()
                 (let ((p_0 (unwrap v_1)))
                   (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
                                                   (begin-unsafe
                                                    (null? (unwrap lst_0))))
                                                (let ((v_2
                                                       (if (begin-unsafe
                                                            (pair?
                                                             (unwrap lst_0)))
                                                         (wrap-car lst_0)
                                                         lst_0)))
                                                  (let ((rest_0
                                                         (if (begin-unsafe
                                                              (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 ((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
                                                              ((idss6_0
                                                                rhss7_0)
                                                               (values
                                                                (cons
                                                                 idss6_0
                                                                 idss_0)
                                                                (cons
                                                                 rhss7_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
                                                              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 body_0))))
                (args (raise-binding-result-arity-error 4 args))))
              (error 'match "failed ~e" v_1)))))))
     (optimize*_0 v_0))))
(define parameter-result?
  (lambda (v_0 prim-knowns_0 knowns_0 mutated_0)
    (if (begin-unsafe (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 (begin-unsafe (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)))
                   (begin-unsafe (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 (begin-unsafe (null? (unwrap lst_0))))
                              (let ((v_1
                                     (if (begin-unsafe (pair? (unwrap lst_0)))
                                       (wrap-car lst_0)
                                       lst_0)))
                                (let ((rest_0
                                       (if (begin-unsafe
                                            (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 (begin-unsafe (null? (unwrap lst_0))))
                              (let ((v_1
                                     (if (begin-unsafe (pair? (unwrap lst_0)))
                                       (wrap-car lst_0)
                                       lst_0)))
                                (let ((rest_0
                                       (if (begin-unsafe
                                            (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 (begin-unsafe (pair? (unwrap args_0)))
      (+ 1 (args-size (wrap-cdr args_0)))
      1)))
(define smaller-than?
  (lambda (v_0 size_0)
    (positive?
     (letrec*
      ((loop_0
        (|#%name|
         loop
         (lambda (v_1 size_1)
           (begin
             (if (zero? size_1)
               0
               (if (begin-unsafe (pair? (unwrap v_1)))
                 (if (eq? (unwrap (wrap-car v_1)) 'quote)
                   (let ((v_2 (unwrap (wrap-car (wrap-cdr v_1)))))
                     (if (if (symbol? v_2)
                           (let ((or-part_0 (symbol-interned? v_2)))
                             (if or-part_0 or-part_0 (symbol-unreadable? v_2)))
                           #f)
                       (sub1 size_1)
                       0))
                   (let ((app_0 (wrap-cdr v_1)))
                     (loop_0 app_0 (loop_0 (wrap-car v_1) size_1))))
                 (sub1 size_1))))))))
      (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
                                       (begin-unsafe (null? (unwrap lst_0))))
                                    (let ((v_1
                                           (if (begin-unsafe
                                                (pair? (unwrap lst_0)))
                                             (wrap-car lst_0)
                                             lst_0)))
                                      (let ((rest_0
                                             (if (begin-unsafe
                                                  (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
                                       (begin-unsafe (null? (unwrap lst_0))))
                                    (let ((v_1
                                           (if (begin-unsafe
                                                (pair? (unwrap lst_0)))
                                             (wrap-car lst_0)
                                             lst_0)))
                                      (let ((rest_0
                                             (if (begin-unsafe
                                                  (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-constructor? k_0)
             (known-struct-constructor-type-id k_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-constructor/need-imports? k_0)
                   (needed->env
                    (known-struct-constructor/need-imports-needed k_0)
                    add-import!_0
                    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
  (lambda (args_0 base-env_0 mutated_0)
    (let ((env_0
           (letrec*
            ((loop_0
              (|#%name|
               loop
               (lambda (args_1)
                 (begin
                   (if (begin-unsafe (null? (unwrap args_1)))
                     base-env_0
                     (if (begin-unsafe (pair? (unwrap args_1)))
                       (let ((u_0 (unwrap (wrap-car args_1))))
                         (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))
                               (let ((app_0 (cons u_0 g_0)))
                                 (cons app_0 (loop_0 (wrap-cdr args_1))))))))
                       (let ((u_0 (unwrap args_1)))
                         (cons
                          (cons u_0 (deterministic-gensym u_0))
                          base-env_0)))))))))
            (loop_0 args_0))))
      (values
       (letrec*
        ((loop_0
          (|#%name|
           loop
           (lambda (args_1 env_1)
             (begin
               (if (begin-unsafe (null? (unwrap args_1)))
                 '()
                 (if (begin-unsafe (pair? (unwrap args_1)))
                   (let ((u_0 (unwrap (wrap-car args_1))))
                     (let ((app_0 (cdr (car env_1))))
                       (cons
                        app_0
                        (let ((app_1 (wrap-cdr args_1)))
                          (loop_0 app_1 (cdr env_1))))))
                   (cdr (car env_1)))))))))
        (loop_0 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 (begin-unsafe (null? (unwrap lst_0))))
                 (let ((e_0
                        (if (begin-unsafe (pair? (unwrap lst_0)))
                          (wrap-car lst_0)
                          lst_0)))
                   (let ((rest_0
                          (if (begin-unsafe (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
                                         (begin-unsafe (null? (unwrap lst_0))))
                                      (let ((v_1
                                             (if (begin-unsafe
                                                  (pair? (unwrap lst_0)))
                                               (wrap-car lst_0)
                                               lst_0)))
                                        (let ((rest_0
                                               (if (begin-unsafe
                                                    (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)))
                                                                      (begin-unsafe
                                                                       (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
                                           (begin-unsafe
                                            (null? (unwrap lst_0))))
                                        (let ((v_1
                                               (if (begin-unsafe
                                                    (pair? (unwrap lst_0)))
                                                 (wrap-car lst_0)
                                                 lst_0)))
                                          (let ((rest_0
                                                 (if (begin-unsafe
                                                      (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 (begin-unsafe (null? (unwrap lst_0))))
                               (let ((v_1
                                      (if (begin-unsafe (pair? (unwrap lst_0)))
                                        (wrap-car lst_0)
                                        lst_0)))
                                 (let ((rest_0
                                        (if (begin-unsafe
                                             (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 (begin-unsafe (null? (unwrap lst_0))))
                               (let ((v_1
                                      (if (begin-unsafe (pair? (unwrap lst_0)))
                                        (wrap-car lst_0)
                                        lst_0)))
                                 (let ((rest_0
                                        (if (begin-unsafe
                                             (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)))
                         (begin-unsafe
                          (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)))
                                           (begin-unsafe
                                            (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)))
                                             (begin-unsafe
                                              (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? 'begin-unsafe 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-unsafe
                              (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)))
                                               (begin-unsafe
                                                (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 ((app_0
                                       (clone-expr id_0 env_0 mutated_0)))
                                  (list
                                   'set!
                                   app_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))))
                                     (begin-unsafe
                                      (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)))
                                             (begin-unsafe
                                              (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
                   (begin-unsafe (hash-map needed_0 cons #t)))))))))
      (if (known-struct-constructor? k_0)
        (let ((needed_0
               (needed-imports
                (known-struct-constructor-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-constructor-type k_0)))
                (let ((app_2 (known-struct-constructor-type-id k_0)))
                  (known-struct-constructor/need-imports
                   app_0
                   app_1
                   app_2
                   (begin-unsafe (hash-map needed_0 cons #t))))))
            (let ((app_0 (known-procedure-arity-mask k_0)))
              (known-constructor app_0 (known-constructor-type k_0)))))
        (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)))
                      (let ((app_4 (known-struct-predicate-sealed? k_0)))
                        (known-struct-predicate/need-imports
                         app_0
                         app_1
                         app_2
                         app_3
                         app_4
                         (begin-unsafe (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-authentic? k_0)))
                        (let ((app_4 (known-field-accessor-pos k_0)))
                          (let ((app_5
                                 (known-field-accessor-known-immutable? k_0)))
                            (known-field-accessor/need-imports
                             app_0
                             app_1
                             app_2
                             app_3
                             app_4
                             app_5
                             (begin-unsafe (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-authentic? k_0)))
                          (let ((app_4 (known-field-mutator-pos k_0)))
                            (known-field-mutator/need-imports
                             app_0
                             app_1
                             app_2
                             app_3
                             app_4
                             (begin-unsafe (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 (begin-unsafe (null? (unwrap lst_0))))
                                (let ((v_1
                                       (if (begin-unsafe
                                            (pair? (unwrap lst_0)))
                                         (wrap-car lst_0)
                                         lst_0)))
                                  (let ((rest_0
                                         (if (begin-unsafe
                                              (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 (begin-unsafe (null? (unwrap lst_0))))
                                (let ((v_1
                                       (if (begin-unsafe
                                            (pair? (unwrap lst_0)))
                                         (wrap-car lst_0)
                                         lst_0)))
                                  (let ((rest_0
                                         (if (begin-unsafe
                                              (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)))
                          (begin-unsafe
                           (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)))
                                            (begin-unsafe
                                             (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)))
                                              (begin-unsafe
                                               (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? 'begin-unsafe 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)))
                                                (begin-unsafe
                                                 (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 (begin-unsafe (null? (unwrap lst_0))))
                (let ((e_0
                       (if (begin-unsafe (pair? (unwrap lst_0)))
                         (wrap-car lst_0)
                         lst_0)))
                  (let ((rest_0
                         (if (begin-unsafe (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
                                         (begin-unsafe (null? (unwrap lst_0))))
                                      (let ((v_1
                                             (if (begin-unsafe
                                                  (pair? (unwrap lst_0)))
                                               (wrap-car lst_0)
                                               lst_0)))
                                        (let ((rest_0
                                               (if (begin-unsafe
                                                    (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)))
                                                                      (begin-unsafe
                                                                       (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
                                           (begin-unsafe
                                            (null? (unwrap lst_0))))
                                        (let ((v_1
                                               (if (begin-unsafe
                                                    (pair? (unwrap lst_0)))
                                                 (wrap-car lst_0)
                                                 lst_0)))
                                          (let ((rest_0
                                                 (if (begin-unsafe
                                                      (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 (begin-unsafe (null? (unwrap args_0)))
      env_0
      (if (begin-unsafe (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 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)))
                    (begin-unsafe
                     (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)))))
                            (let ((or-part_0 (known-procedure/allocates? k_0)))
                              (if or-part_0
                                or-part_0
                                (known-procedure/single-valued? k_0))))
                          #f)
                        #f)
                    v_0
                    (list '$value v_0))))
              v_0)))))))
(define INITIAL-SINGLE-VALUE-FUEL 16)
(define single-valued-lambda?
  (lambda (lam_0 knowns_0 prim-knowns_0 imports_0 mutated_0)
    (let ((hd_0
           (let ((p_0 (unwrap lam_0)))
             (if (pair? p_0) (unwrap (car p_0)) #f))))
      (if (if (eq? 'lambda hd_0)
            (let ((a_0 (cdr (unwrap lam_0))))
              (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
            #f)
        (let ((body_0
               (let ((d_0 (cdr (unwrap lam_0))))
                 (let ((d_1 (cdr (unwrap d_0)))) d_1))))
          (single-valued-body?
           body_0
           knowns_0
           prim-knowns_0
           imports_0
           mutated_0
           16))
        (if (if (eq? 'case-lambda hd_0)
              (let ((a_0 (cdr (unwrap lam_0))))
                (if (wrap-list? a_0)
                  (begin
                    (letrec*
                     ((for-loop_0
                       (|#%name|
                        for-loop
                        (lambda (result_0 lst_0)
                          (begin
                            (if (not (begin-unsafe (null? (unwrap lst_0))))
                              (let ((v_0
                                     (if (begin-unsafe (pair? (unwrap lst_0)))
                                       (wrap-car lst_0)
                                       lst_0)))
                                (let ((rest_0
                                       (if (begin-unsafe
                                            (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 ((bodys_0
                 (let ((d_0 (cdr (unwrap lam_0))))
                   (let ((bodys_0
                          (begin
                            (letrec*
                             ((for-loop_0
                               (|#%name|
                                for-loop
                                (lambda (bodys_0 lst_0)
                                  (begin
                                    (if (not
                                         (begin-unsafe (null? (unwrap lst_0))))
                                      (let ((v_0
                                             (if (begin-unsafe
                                                  (pair? (unwrap lst_0)))
                                               (wrap-car lst_0)
                                               lst_0)))
                                        (let ((rest_0
                                               (if (begin-unsafe
                                                    (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_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
                                          (single-valued-body?
                                           body_0
                                           knowns_0
                                           prim-knowns_0
                                           imports_0
                                           mutated_0
                                           16)))
                                     (values result_1))))
                              (if (if (not
                                       (let ((x_0 (list body_0)))
                                         (not result_1)))
                                    #t
                                    #f)
                                (for-loop_0 result_1 rest_0)
                                result_1))))
                        result_0))))))
               (for-loop_0 #t bodys_0))))
          #f)))))
(define single-valued-body?
  (lambda (body_0 knowns_0 prim-knowns_0 imports_0 mutated_0 fuel_0)
    (letrec*
     ((loop_0
       (|#%name|
        loop
        (lambda (body_1 fuel_1)
          (begin
            (if (fx= fuel_1 0)
              #f
              (if (null? (cdr body_1))
                (single-valued?
                 (car body_1)
                 knowns_0
                 prim-knowns_0
                 imports_0
                 mutated_0
                 fuel_1)
                (let ((app_0 (cdr body_1)))
                  (loop_0 app_0 (fx- fuel_1 1))))))))))
     (loop_0 body_0 fuel_0))))
(define single-valued?
  (lambda (e_0 knowns_0 prim-knowns_0 imports_0 mutated_0 fuel_0)
    (if (fx= fuel_0 0)
      #f
      (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
            (if (if (eq? 'quote hd_0) #t #f)
              #t
              (if (if (eq? '|#%variable-reference| hd_0) #t #f)
                #t
                (if (if (eq? 'let-values 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))))
                    (single-valued-body?
                     body_0
                     knowns_0
                     prim-knowns_0
                     imports_0
                     mutated_0
                     (fx- fuel_0 1)))
                  (if (if (eq? 'let 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))))
                      (single-valued-body?
                       body_0
                       knowns_0
                       prim-knowns_0
                       imports_0
                       mutated_0
                       (fx- fuel_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) #t #f)))
                          #f)
                      (let ((body_0
                             (let ((d_0 (cdr (unwrap e_0))))
                               (let ((d_1 (cdr (unwrap d_0)))) d_1))))
                        (single-valued-body?
                         body_0
                         knowns_0
                         prim-knowns_0
                         imports_0
                         mutated_0
                         (fx- fuel_0 1)))
                      (if (if (eq? 'letrec 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))))
                          (single-valued-body?
                           body_0
                           knowns_0
                           prim-knowns_0
                           imports_0
                           mutated_0
                           (fx- fuel_0 1)))
                        (if (if (eq? 'letrec-values 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))))
                            (single-valued-body?
                             body_0
                             knowns_0
                             prim-knowns_0
                             imports_0
                             mutated_0
                             (fx- fuel_0 1)))
                          (if (if (eq? 'letrec* 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))))
                              (single-valued-body?
                               body_0
                               knowns_0
                               prim-knowns_0
                               imports_0
                               mutated_0
                               (fx- fuel_0 1)))
                            (if (if (eq? 'begin hd_0) #t #f)
                              (let ((body_0
                                     (let ((d_0 (cdr (unwrap e_0)))) d_0)))
                                (single-valued-body?
                                 body_0
                                 knowns_0
                                 prim-knowns_0
                                 imports_0
                                 mutated_0
                                 (fx- fuel_0 1)))
                              (if (if (eq? 'begin-unsafe hd_0) #t #f)
                                (let ((body_0
                                       (let ((d_0 (cdr (unwrap e_0)))) d_0)))
                                  (single-valued-body?
                                   body_0
                                   knowns_0
                                   prim-knowns_0
                                   imports_0
                                   mutated_0
                                   (fx- fuel_0 1)))
                                (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)
                                  (let ((e_1
                                         (let ((d_0 (cdr (unwrap e_0))))
                                           (let ((a_0 (car (unwrap d_0))))
                                             a_0))))
                                    (single-valued?
                                     e_1
                                     knowns_0
                                     prim-knowns_0
                                     imports_0
                                     mutated_0
                                     (fx- fuel_0 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)))
                                                      (begin-unsafe
                                                       (let ((app_0
                                                              (unwrap '())))
                                                         (eq?
                                                          app_0
                                                          (unwrap a_2)))))
                                                    #f)))
                                              #f)))
                                        #f)
                                    #t
                                    (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)))
                                                              (begin-unsafe
                                                               (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 ((d_1 (cdr (unwrap d_0))))
                                             (let ((p_0 (unwrap d_1)))
                                               (let ((thn_0
                                                      (let ((a_0 (car p_0)))
                                                        a_0)))
                                                 (let ((els_0
                                                        (let ((d_2 (cdr p_0)))
                                                          (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)
                                         (if (single-valued?
                                              thn_0
                                              knowns_0
                                              prim-knowns_0
                                              imports_0
                                              mutated_0
                                              (unsafe-fxrshift fuel_0 1))
                                           (single-valued?
                                            els_0
                                            knowns_0
                                            prim-knowns_0
                                            imports_0
                                            mutated_0
                                            (unsafe-fxrshift fuel_0 1))
                                           #f))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))
                                      (if (if (eq? '|#%app/value| hd_0) #t #f)
                                        #t
                                        (if (if (eq? '|#%app/no-return| hd_0)
                                              #t
                                              #f)
                                          #t
                                          (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 ((proc_1 (unwrap proc_0)))
                                                 (if (symbol? proc_1)
                                                   (if (let ((v_0
                                                              (let ((or-part_0
                                                                     (hash-ref-either
                                                                      knowns_0
                                                                      imports_0
                                                                      proc_1)))
                                                                (if or-part_0
                                                                  or-part_0
                                                                  (hash-ref
                                                                   prim-knowns_0
                                                                   proc_1
                                                                   #f)))))
                                                         (known-procedure/single-valued?
                                                          v_0))
                                                     (simple-mutated-state?
                                                      (hash-ref
                                                       mutated_0
                                                       proc_1
                                                       #f))
                                                     #f)
                                                   #f)))
                                              (args
                                               (raise-binding-result-arity-error
                                                2
                                                args))))
                                            #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
            target16_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
                           (if (if unsafe-mode?15_0
                                 (not (eq? target16_0 'cify))
                                 #f)
                             (add-begin-unsafe lam_1)
                             lam_1)))
                        (if (single-valued-lambda?
                             lam_0
                             knowns10_0
                             prim-knowns11_0
                             imports12_0
                             mutated13_0)
                          (known-procedure/single-valued arity-mask_0)
                          (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
                                             (let ((or-part_1
                                                    (known-copy? c2_0)))
                                               (if or-part_1
                                                 or-part_1
                                                 (let ((or-part_2
                                                        (known-struct-constructor/need-imports?
                                                         c2_0)))
                                                   (if or-part_2
                                                     or-part_2
                                                     (let ((or-part_3
                                                            (known-struct-predicate/need-imports?
                                                             c2_0)))
                                                       (if or-part_3
                                                         or-part_3
                                                         (let ((or-part_4
                                                                (known-field-accessor/need-imports?
                                                                 c2_0)))
                                                           (if or-part_4
                                                             or-part_4
                                                             (known-field-mutator/need-imports?
                                                              c2_0)))))))))))
                                       (known-copy rhs_0)
                                       c2_0)))
                                 (if defn8_0
                                   a-known-constant
                                   (if (hash-ref imports12_0 u-rhs_0 #f)
                                     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)))
                                               (begin-unsafe
                                                (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)))
                                                   (begin-unsafe
                                                    (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)))
                                             (begin-unsafe
                                              (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
                                        #f
                                        #t
                                        1
                                        rhs_0
                                        prim-knowns11_0
                                        knowns10_0
                                        imports12_0
                                        mutated13_0
                                        simples14_0
                                        unsafe-mode?15_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 add-begin-unsafe
  (lambda (lam_0)
    (reannotate
     lam_0
     (let ((hd_0
            (let ((p_0 (unwrap lam_0)))
              (if (pair? p_0) (unwrap (car p_0)) #f))))
       (if (if (eq? 'lambda hd_0)
             (let ((a_0 (cdr (unwrap lam_0))))
               (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
             #f)
         (call-with-values
          (lambda ()
            (let ((d_0 (cdr (unwrap lam_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) (list 'lambda args_0 (list* 'begin-unsafe body_0)))
           (args (raise-binding-result-arity-error 2 args))))
         (if (if (eq? 'case-lambda hd_0)
               (let ((a_0 (cdr (unwrap lam_0))))
                 (if (wrap-list? a_0)
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (result_0 lst_0)
                           (begin
                             (if (not (begin-unsafe (null? (unwrap lst_0))))
                               (let ((v_0
                                      (if (begin-unsafe (pair? (unwrap lst_0)))
                                        (wrap-car lst_0)
                                        lst_0)))
                                 (let ((rest_0
                                        (if (begin-unsafe
                                             (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 lam_0))))
                (call-with-values
                 (lambda ()
                   (begin
                     (letrec*
                      ((for-loop_0
                        (|#%name|
                         for-loop
                         (lambda (argss_0 bodys_0 lst_0)
                           (begin
                             (if (not (begin-unsafe (null? (unwrap lst_0))))
                               (let ((v_0
                                      (if (begin-unsafe (pair? (unwrap lst_0)))
                                        (wrap-car lst_0)
                                        lst_0)))
                                 (let ((rest_0
                                        (if (begin-unsafe
                                             (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
                                             ((argss26_0 bodys27_0)
                                              (values
                                               (cons argss26_0 argss_0)
                                               (cons bodys27_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)
              (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
                                           (cons
                                            (list
                                             args_0
                                             (list* 'begin-unsafe body_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 argss_0 bodys_0))))))
             (args (raise-binding-result-arity-error 2 args))))
           lam_0))))))
(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
            target12_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)))
                                 (begin-unsafe
                                  (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)))
                               (begin-unsafe
                                (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
                         target12_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)))
                                               (begin-unsafe
                                                (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)))
                                                                                                         (begin-unsafe
                                                                                                          (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)))
                                                                               (begin-unsafe
                                                                                (let ((app_0
                                                                                       (unwrap
                                                                                        '())))
                                                                                  (eq?
                                                                                   app_0
                                                                                   (unwrap
                                                                                    a_7)))))
                                                                             #f)))
                                                                       #f)
                                                                     #f)))
                                                             (let ((a_5
                                                                    (cdr p_4)))
                                                               (begin-unsafe
                                                                (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)))
                                                                         (begin-unsafe
                                                                          (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)))
                                                             (begin-unsafe
                                                              (let ((app_0
                                                                     (unwrap
                                                                      '())))
                                                                (eq?
                                                                 app_0
                                                                 (unwrap
                                                                  a_5)))))
                                                           #f)
                                                         #f)))
                                                   #f)
                                                 #f)))
                                           #f)
                                         #f)))
                                 (let ((a_2 (cdr p_1)))
                                   (begin-unsafe
                                    (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 (begin-unsafe
                            (let ((app_0 (unwrap struct:_0)))
                              (eq? app_0 (unwrap struct:2_0))))
                         (if (begin-unsafe
                              (let ((app_0 (unwrap make_0)))
                                (eq? app_0 (unwrap make2_0))))
                           (if (begin-unsafe
                                (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-struct-constructor
                                   (arithmetic-shift
                                    1
                                    (struct-type-info-field-count info_0))
                                   type_0
                                   struct:s_0)
                                  a-known-constant)))))
                        (let ((authentic?_0
                               (struct-type-info-authentic? info_0)))
                          (let ((sealed?_0 (struct-type-info-sealed? info_0)))
                            (let ((knowns_1
                                   (let ((app_0 (unwrap s?_0)))
                                     (hash-set
                                      knowns_0
                                      app_0
                                      (known-struct-predicate
                                       2
                                       type_0
                                       struct:s_0
                                       authentic?_0
                                       sealed?_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)))
                                                                                                                     (begin-unsafe
                                                                                                                      (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)))
                                                                                                                         (begin-unsafe
                                                                                                                          (let ((app_0
                                                                                                                                 (unwrap
                                                                                                                                  '())))
                                                                                                                            (eq?
                                                                                                                             app_0
                                                                                                                             (unwrap
                                                                                                                              a_5)))))
                                                                                                                       #f)))
                                                                                                                 #f)
                                                                                                               #f)))
                                                                                                       (let ((a_3
                                                                                                              (cdr
                                                                                                               p_3)))
                                                                                                         (begin-unsafe
                                                                                                          (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 (begin-unsafe
                                                                                                      (let ((app_0
                                                                                                             (unwrap
                                                                                                              make_1)))
                                                                                                        (eq?
                                                                                                         app_0
                                                                                                         (unwrap
                                                                                                          'make-struct-field-accessor))))
                                                                                                   (begin-unsafe
                                                                                                    (let ((app_0
                                                                                                           (unwrap
                                                                                                            ref-or-set_0)))
                                                                                                      (eq?
                                                                                                       app_0
                                                                                                       (unwrap
                                                                                                        -ref_0))))
                                                                                                   #f)
                                                                                               (let ((immutable?_0
                                                                                                      (memv
                                                                                                       pos_0
                                                                                                       (let ((or-part_0
                                                                                                              (struct-type-info-prefab-immutables
                                                                                                               info_0)))
                                                                                                         (if or-part_0
                                                                                                           or-part_0
                                                                                                           (let ((or-part_1
                                                                                                                  (struct-type-info-non-prefab-immutables
                                                                                                                   info_0)))
                                                                                                             (if or-part_1
                                                                                                               or-part_1
                                                                                                               '())))))))
                                                                                                 (let ((app_0
                                                                                                        (unwrap
                                                                                                         id_0)))
                                                                                                   (hash-set
                                                                                                    knowns_2
                                                                                                    app_0
                                                                                                    (known-field-accessor
                                                                                                     2
                                                                                                     type_0
                                                                                                     struct:s_0
                                                                                                     authentic?_0
                                                                                                     (+
                                                                                                      parent-count_0
                                                                                                      pos_0)
                                                                                                     immutable?_0))))
                                                                                               (if (if (begin-unsafe
                                                                                                        (let ((app_0
                                                                                                               (unwrap
                                                                                                                make_1)))
                                                                                                          (eq?
                                                                                                           app_0
                                                                                                           (unwrap
                                                                                                            'make-struct-field-mutator))))
                                                                                                     (begin-unsafe
                                                                                                      (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
                                                                                                     authentic?_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)))
                                      (let ((app_2
                                             (struct-type-info-pure-constructor?
                                              info_0)))
                                        (known-struct-type
                                         type_0
                                         app_1
                                         app_2
                                         (struct-type-info-sealed? 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)))
                                                             (begin-unsafe
                                                              (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)))
                                   (begin-unsafe
                                    (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
                                     (let ((app_1
                                            (struct-type-info-authentic?
                                             info_0)))
                                       (known-struct-predicate
                                        2
                                        type_0
                                        struct:s_0
                                        app_1
                                        (struct-type-info-sealed? 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)))
                                  (let ((app_2
                                         (struct-type-info-pure-constructor?
                                          info_0)))
                                    (known-struct-type
                                     type_0
                                     app_1
                                     app_2
                                     (struct-type-info-sealed? 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)))
                                                   (begin-unsafe
                                                    (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)))
                                                   (begin-unsafe
                                                    (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)))
                                       (begin-unsafe
                                        (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
                              (let ((app_0 (unwrap s-ref_0)))
                                (hash-set
                                 knowns7_0
                                 app_0
                                 (known-accessor 2 type_0)))))
                         (let ((knowns_1
                                (let ((app_0 (unwrap s?_0)))
                                  (hash-set
                                   knowns_0
                                   app_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)))
                             (let ((app_0 (unwrap prop:s_0)))
                               (hash-set
                                knowns_1
                                app_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)))
                                     (begin-unsafe
                                      (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)))
                                                  (begin-unsafe
                                                   (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)))
                                                      (begin-unsafe
                                                       (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 ((temp26_0
                                                                                     (propagate-inline-hint
                                                                                      v5_0
                                                                                      (list
                                                                                       'define-values
                                                                                       (list
                                                                                        id_0)
                                                                                       rhs_2))))
                                                                                (find-definitions.1
                                                                                 optimize?2_0
                                                                                 hash2610
                                                                                 temp26_0
                                                                                 prim-knowns6_0
                                                                                 knowns_0
                                                                                 imports8_0
                                                                                 mutated9_0
                                                                                 simples10_0
                                                                                 unsafe-mode?11_0
                                                                                 target12_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 propagate-inline-hint
  (lambda (defn_0 new-defn_0)
    (if (wrap-property defn_0 'compiler-hint:cross-module-inline)
      (wrap-property-set new-defn_0 'compiler-hint:cross-module-inline #t)
      new-defn_0)))
(define struct-convert
  (lambda (form_0
           prim-knowns_0
           knowns_0
           imports_0
           exports_0
           mutated_0
           schemify_0
           target_0
           no-prompt?_0
           top?_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)))
                                          (begin-unsafe
                                           (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)))
                                                                                                    (begin-unsafe
                                                                                                     (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)))
                                                                          (begin-unsafe
                                                                           (let ((app_0
                                                                                  (unwrap
                                                                                   '())))
                                                                             (eq?
                                                                              app_0
                                                                              (unwrap
                                                                               a_7)))))
                                                                        #f)))
                                                                  #f)
                                                                #f)))
                                                        (let ((a_5 (cdr p_4)))
                                                          (begin-unsafe
                                                           (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)))
                                                                    (begin-unsafe
                                                                     (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)))
                                                        (begin-unsafe
                                                         (let ((app_0
                                                                (unwrap '())))
                                                           (eq?
                                                            app_0
                                                            (unwrap a_5)))))
                                                      #f)
                                                    #f)))
                                              #f)
                                            #f)))
                                      #f)
                                    #f)))
                            (let ((a_2 (cdr p_1)))
                              (begin-unsafe
                               (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 (begin-unsafe
                       (let ((app_0 (unwrap struct:_0)))
                         (eq? app_0 (unwrap struct:2_0))))
                    (if (begin-unsafe
                         (let ((app_0 (unwrap make_0)))
                           (eq? app_0 (unwrap make2_0))))
                      (if (begin-unsafe
                           (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)))
                                                                                                        (begin-unsafe
                                                                                                         (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)))
                                                                                                            (begin-unsafe
                                                                                                             (let ((app_0
                                                                                                                    (unwrap
                                                                                                                     '())))
                                                                                                               (eq?
                                                                                                                app_0
                                                                                                                (unwrap
                                                                                                                 a_5)))))
                                                                                                          #f)))
                                                                                                    #f)
                                                                                                  #f)))
                                                                                          (let ((a_3
                                                                                                 (cdr
                                                                                                  p_2)))
                                                                                            (begin-unsafe
                                                                                             (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 (begin-unsafe
                                                                          (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)))
                                                                                                          (begin-unsafe
                                                                                                           (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)))
                                                                                                              (begin-unsafe
                                                                                                               (let ((app_0
                                                                                                                      (unwrap
                                                                                                                       '())))
                                                                                                                 (eq?
                                                                                                                  app_0
                                                                                                                  (unwrap
                                                                                                                   a_5)))))
                                                                                                            #f)))
                                                                                                      #f)
                                                                                                    #f)))
                                                                                            (let ((a_3
                                                                                                   (cdr
                                                                                                    p_2)))
                                                                                              (begin-unsafe
                                                                                               (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 (begin-unsafe
                                                                            (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)))
                                                                                 (begin-unsafe
                                                                                  (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 ((system-opaque?_0
                          (if (eq? target_0 'system)
                            (let ((or-part_0 (not exports_0)))
                              (if or-part_0
                                or-part_0
                                (eq?
                                 'no
                                 (hash-ref
                                  exports_0
                                  (unwrap struct:s_0)
                                  'no))))
                            #f)))
                     (let ((finish!-id_0
                            (if (let ((or-part_0
                                       (pair? (struct-type-info-rest sti_0))))
                                  (if or-part_0
                                    or-part_0
                                    (if (struct-type-info-prefab-immutables
                                         sti_0)
                                      (unwrap (struct-type-info-parent sti_0))
                                      #f)))
                              (deterministic-gensym "finish")
                              #f)))
                       (list*
                        'begin
                        (let ((app_0
                               (if finish!-id_0
                                 (list
                                  (list
                                   'define
                                   finish!-id_0
                                   (let ((app_0
                                          (list
                                           'quote
                                           (if system-opaque?_0
                                             (list
                                              (struct-type-info-name sti_0))
                                             (struct-type-info-name sti_0)))))
                                     (let ((app_1
                                            (struct-type-info-immediate-field-count
                                             sti_0)))
                                       (let ((app_2
                                              (|#%app|
                                               schemify_0
                                               (struct-type-info-parent sti_0)
                                               knowns_0)))
                                         (list*
                                          'make-struct-type-install-properties
                                          app_0
                                          app_1
                                          0
                                          app_2
                                          (schemify-body$1
                                           schemify_0
                                           knowns_0
                                           (struct-type-info-rest sti_0))))))))
                                 null)))
                          (qq-append
                           app_0
                           (let ((app_1
                                  (list
                                   'define
                                   struct:s_0
                                   (let ((app_1
                                          (list
                                           'quote
                                           (struct-type-info-name sti_0))))
                                     (let ((app_2
                                            (|#%app|
                                             schemify_0
                                             (struct-type-info-parent sti_0)
                                             knowns_0)))
                                       (let ((app_3
                                              (if (not
                                                   (struct-type-info-prefab-immutables
                                                    sti_0))
                                                (if (if top?_0
                                                      (eq? target_0 'system)
                                                      #f)
                                                  (list
                                                   '|#%nongenerative-uid|
                                                   (struct-type-info-name
                                                    sti_0))
                                                  #f)
                                                (let ((app_3
                                                       (list
                                                        'quote
                                                        (struct-type-info-name
                                                         sti_0))))
                                                  (let ((app_4
                                                         (|#%app|
                                                          schemify_0
                                                          (struct-type-info-parent
                                                           sti_0)
                                                          knowns_0)))
                                                    (let ((app_5
                                                           (struct-type-info-immediate-field-count
                                                            sti_0)))
                                                      (list
                                                       'structure-type-lookup-prefab-uid
                                                       app_3
                                                       app_4
                                                       app_5
                                                       0
                                                       #f
                                                       (list
                                                        'quote
                                                        (struct-type-info-prefab-immutables
                                                         sti_0)))))))))
                                         (let ((app_4
                                                (struct-type-info-sealed?
                                                 sti_0)))
                                           (let ((app_5
                                                  (struct-type-info-immediate-field-count
                                                   sti_0)))
                                             (list
                                              'make-record-type-descriptor*
                                              app_1
                                              app_2
                                              app_3
                                              app_4
                                              #f
                                              app_5
                                              (let ((n_0
                                                     (struct-type-info-immediate-field-count
                                                      sti_0)))
                                                (let ((mask_0
                                                       (sub1
                                                        (arithmetic-shift
                                                         1
                                                         n_0))))
                                                  (let ((c1_0
                                                         (struct-type-info-non-prefab-immutables
                                                          sti_0)))
                                                    (if c1_0
                                                      (letrec*
                                                       ((loop_0
                                                         (|#%name|
                                                          loop
                                                          (lambda (imms_0
                                                                   mask_1)
                                                            (begin
                                                              (if (null?
                                                                   imms_0)
                                                                mask_1
                                                                (let ((m_0
                                                                       (bitwise-not
                                                                        (arithmetic-shift
                                                                         1
                                                                         (car
                                                                          imms_0)))))
                                                                  (let ((app_6
                                                                         (cdr
                                                                          imms_0)))
                                                                    (loop_0
                                                                     app_6
                                                                     (bitwise-and
                                                                      mask_1
                                                                      m_0))))))))))
                                                       (loop_0 c1_0 mask_0))
                                                      mask_0)))))))))))))
                             (list*
                              app_1
                              (let ((app_2
                                     (if finish!-id_0
                                       (list
                                        (let ((app_2
                                               (deterministic-gensym
                                                "effect")))
                                          (list
                                           'define
                                           app_2
                                           (list finish!-id_0 struct:s_0))))
                                       null)))
                                (qq-append
                                 app_2
                                 (let ((app_3
                                        (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)))
                                               (let ((c_0
                                                      (if (begin-unsafe
                                                           (let ((app_3
                                                                  (unwrap #f)))
                                                             (eq?
                                                              app_3
                                                              (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)))
                                                                      (begin-unsafe
                                                                       (let ((app_3
                                                                              (unwrap
                                                                               'quote)))
                                                                         (eq?
                                                                          app_3
                                                                          (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)))
                                                                          (begin-unsafe
                                                                           (let ((app_3
                                                                                  (unwrap
                                                                                   '())))
                                                                             (eq?
                                                                              app_3
                                                                              (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)))))
                                                 (if system-opaque?_0
                                                   c_0
                                                   (list
                                                    '|#%struct-constructor|
                                                    c_0
                                                    (arithmetic-shift
                                                     1
                                                     (struct-type-info-field-count
                                                      sti_0)))))))))))
                                   (let ((app_4
                                          (list
                                           'define
                                           raw-s?_0
                                           (let ((pre_0 ""))
                                             (let ((p_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))
                                                              (begin-unsafe
                                                               (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))))))))))))
                                               (if (if can-impersonate?_0
                                                     can-impersonate?_0
                                                     system-opaque?_0)
                                                 p_0
                                                 (list
                                                  '|#%struct-predicate|
                                                  p_0)))))))
                                     (list*
                                      app_3
                                      app_4
                                      (let ((app_5
                                             (if can-impersonate?_0
                                               (list
                                                (list
                                                 'define
                                                 s?_0
                                                 (let ((pre_0 ""))
                                                   (let ((p_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))
                                                                    (begin-unsafe
                                                                     (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
                                                                           '||)
                                                                          post_1))))))))))))
                                                     (if system-opaque?_0
                                                       p_0
                                                       (list
                                                        '|#%struct-predicate|
                                                        p_0))))))
                                               null)))
                                        (qq-append
                                         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)))
                                                                                                                         (begin-unsafe
                                                                                                                          (let ((app_6
                                                                                                                                 (unwrap
                                                                                                                                  'quote)))
                                                                                                                            (eq?
                                                                                                                             app_6
                                                                                                                             (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)))
                                                                                                                             (begin-unsafe
                                                                                                                              (let ((app_6
                                                                                                                                     (unwrap
                                                                                                                                      '())))
                                                                                                                                (eq?
                                                                                                                                 app_6
                                                                                                                                 (unwrap
                                                                                                                                  a_5)))))
                                                                                                                           #f)))
                                                                                                                     #f)
                                                                                                                   #f)))
                                                                                                           (let ((a_3
                                                                                                                  (cdr
                                                                                                                   p_2)))
                                                                                                             (begin-unsafe
                                                                                                              (let ((app_6
                                                                                                                     (unwrap
                                                                                                                      '())))
                                                                                                                (eq?
                                                                                                                 app_6
                                                                                                                 (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 ((p_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))
                                                                                                                 (begin-unsafe
                                                                                                                  (wrap-property-set
                                                                                                                   proc-expr_0
                                                                                                                   'inferred-name
                                                                                                                   (string->symbol
                                                                                                                    (let ((app_6
                                                                                                                           (symbol->string
                                                                                                                            st_1)))
                                                                                                                      (string-append
                                                                                                                       pre_1
                                                                                                                       app_6
                                                                                                                       sep_1
                                                                                                                       (symbol->string
                                                                                                                        field-name_0)
                                                                                                                       post_1))))))))))))
                                                                                                  (if (if can-impersonate?_0
                                                                                                        can-impersonate?_0
                                                                                                        system-opaque?_0)
                                                                                                    p_0
                                                                                                    (list
                                                                                                     '|#%struct-field-accessor|
                                                                                                     p_0
                                                                                                     struct:s_0
                                                                                                     pos_0)))))))
                                                                                        (if can-impersonate?_0
                                                                                          (list
                                                                                           'begin
                                                                                           raw-def_0
                                                                                           (list
                                                                                            'define
                                                                                            acc/mut_0
                                                                                            (let ((pre_0
                                                                                                   ""))
                                                                                              (let ((p_0
                                                                                                     (let ((st_0
                                                                                                            (struct-type-info-name
                                                                                                             sti_0)))
                                                                                                       (let ((sep_0
                                                                                                              "-"))
                                                                                                         (let ((post_0
                                                                                                                ""))
                                                                                                           (let ((proc-expr_0
                                                                                                                  (list
                                                                                                                   'lambda
                                                                                                                   '(s)
                                                                                                                   (let ((app_6
                                                                                                                          (list*
                                                                                                                           raw-s?_0
                                                                                                                           '(s))))
                                                                                                                     (let ((app_7
                                                                                                                            (list*
                                                                                                                             raw-acc/mut_0
                                                                                                                             '(s))))
                                                                                                                       (list
                                                                                                                        'if
                                                                                                                        app_6
                                                                                                                        app_7
                                                                                                                        (list
                                                                                                                         '$value
                                                                                                                         (let ((app_8
                                                                                                                                (list
                                                                                                                                 'quote
                                                                                                                                 (struct-type-info-name
                                                                                                                                  sti_0))))
                                                                                                                           (list
                                                                                                                            'impersonate-ref
                                                                                                                            raw-acc/mut_0
                                                                                                                            struct:s_0
                                                                                                                            pos_0
                                                                                                                            's
                                                                                                                            app_8
                                                                                                                            (list
                                                                                                                             'quote
                                                                                                                             field-name_0))))))))))
                                                                                                             (let ((post_1
                                                                                                                    post_0)
                                                                                                                   (sep_1
                                                                                                                    sep_0)
                                                                                                                   (st_1
                                                                                                                    st_0)
                                                                                                                   (pre_1
                                                                                                                    pre_0))
                                                                                                               (begin-unsafe
                                                                                                                (wrap-property-set
                                                                                                                 proc-expr_0
                                                                                                                 'inferred-name
                                                                                                                 (string->symbol
                                                                                                                  (let ((app_6
                                                                                                                         (symbol->string
                                                                                                                          st_1)))
                                                                                                                    (string-append
                                                                                                                     pre_1
                                                                                                                     app_6
                                                                                                                     sep_1
                                                                                                                     (symbol->string
                                                                                                                      field-name_0)
                                                                                                                     post_1))))))))))))
                                                                                                (if system-opaque?_0
                                                                                                  p_0
                                                                                                  (list
                                                                                                   '|#%struct-field-accessor|
                                                                                                   p_0
                                                                                                   struct:s_0
                                                                                                   pos_0))))))
                                                                                          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)))
                                                                                                                           (begin-unsafe
                                                                                                                            (let ((app_6
                                                                                                                                   (unwrap
                                                                                                                                    'quote)))
                                                                                                                              (eq?
                                                                                                                               app_6
                                                                                                                               (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)))
                                                                                                                               (begin-unsafe
                                                                                                                                (let ((app_6
                                                                                                                                       (unwrap
                                                                                                                                        '())))
                                                                                                                                  (eq?
                                                                                                                                   app_6
                                                                                                                                   (unwrap
                                                                                                                                    a_5)))))
                                                                                                                             #f)))
                                                                                                                       #f)
                                                                                                                     #f)))
                                                                                                             (let ((a_3
                                                                                                                    (cdr
                                                                                                                     p_2)))
                                                                                                               (begin-unsafe
                                                                                                                (let ((app_6
                                                                                                                       (unwrap
                                                                                                                        '())))
                                                                                                                  (eq?
                                                                                                                   app_6
                                                                                                                   (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 ((p_0
                                                                                                         (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))
                                                                                                                   (begin-unsafe
                                                                                                                    (wrap-property-set
                                                                                                                     proc-expr_0
                                                                                                                     'inferred-name
                                                                                                                     (string->symbol
                                                                                                                      (let ((app_6
                                                                                                                             (symbol->string
                                                                                                                              st_1)))
                                                                                                                        (string-append
                                                                                                                         pre_1
                                                                                                                         app_6
                                                                                                                         sep_1
                                                                                                                         (symbol->string
                                                                                                                          field-name_0)
                                                                                                                         post_1))))))))))))
                                                                                                    (if (if can-impersonate?_0
                                                                                                          can-impersonate?_0
                                                                                                          system-opaque?_0)
                                                                                                      p_0
                                                                                                      (list
                                                                                                       '|#%struct-field-mutator|
                                                                                                       p_0
                                                                                                       struct:s_0
                                                                                                       pos_0)))))))
                                                                                          (let ((abs-pos_0
                                                                                                 (+
                                                                                                  pos_0
                                                                                                  (let ((app_6
                                                                                                         (struct-type-info-field-count
                                                                                                          sti_0)))
                                                                                                    (-
                                                                                                     app_6
                                                                                                     (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 ((p_0
                                                                                                         (let ((st_0
                                                                                                                (struct-type-info-name
                                                                                                                 sti_0)))
                                                                                                           (let ((sep_0
                                                                                                                  "-"))
                                                                                                             (let ((post_0
                                                                                                                    "!"))
                                                                                                               (let ((proc-expr_0
                                                                                                                      (list
                                                                                                                       'lambda
                                                                                                                       '(s
                                                                                                                         v)
                                                                                                                       (let ((app_6
                                                                                                                              (list*
                                                                                                                               raw-s?_0
                                                                                                                               '(s))))
                                                                                                                         (let ((app_7
                                                                                                                                (list*
                                                                                                                                 raw-acc/mut_0
                                                                                                                                 '(s
                                                                                                                                   v))))
                                                                                                                           (list
                                                                                                                            'if
                                                                                                                            app_6
                                                                                                                            app_7
                                                                                                                            (list
                                                                                                                             '$value
                                                                                                                             (let ((app_8
                                                                                                                                    (list
                                                                                                                                     'quote
                                                                                                                                     (struct-type-info-name
                                                                                                                                      sti_0))))
                                                                                                                               (list
                                                                                                                                'impersonate-set!
                                                                                                                                raw-acc/mut_0
                                                                                                                                struct:s_0
                                                                                                                                pos_0
                                                                                                                                abs-pos_0
                                                                                                                                's
                                                                                                                                'v
                                                                                                                                app_8
                                                                                                                                (list
                                                                                                                                 'quote
                                                                                                                                 field-name_0))))))))))
                                                                                                                 (let ((post_1
                                                                                                                        post_0)
                                                                                                                       (sep_1
                                                                                                                        sep_0)
                                                                                                                       (st_1
                                                                                                                        st_0)
                                                                                                                       (pre_1
                                                                                                                        pre_0))
                                                                                                                   (begin-unsafe
                                                                                                                    (wrap-property-set
                                                                                                                     proc-expr_0
                                                                                                                     'inferred-name
                                                                                                                     (string->symbol
                                                                                                                      (let ((app_6
                                                                                                                             (symbol->string
                                                                                                                              st_1)))
                                                                                                                        (string-append
                                                                                                                         pre_1
                                                                                                                         app_6
                                                                                                                         sep_1
                                                                                                                         (symbol->string
                                                                                                                          field-name_0)
                                                                                                                         post_1))))))))))))
                                                                                                    (if system-opaque?_0
                                                                                                      p_0
                                                                                                      (list
                                                                                                       '|#%struct-field-mutator|
                                                                                                       p_0
                                                                                                       struct:s_0
                                                                                                       pos_0))))))
                                                                                              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))))))))))))))))))))
               #f)))
          (args (raise-binding-result-arity-error 14 args))))
        #f))))
(define struct-convert-local.1
  (|#%name|
   struct-convert-local
   (lambda (letrec?1_0
            target3_0
            unsafe-mode?2_0
            form7_0
            prim-knowns8_0
            knowns9_0
            imports10_0
            mutated11_0
            simples12_0
            schemify13_0)
     (begin
       (if (let ((p_0 (unwrap form7_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)))
                                                 (begin-unsafe
                                                  (let ((app_0 (unwrap '())))
                                                    (eq? app_0 (unwrap a_4)))))
                                               #f)))
                                         #f)))
                                 (let ((a_2 (cdr p_2)))
                                   (begin-unsafe
                                    (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 form7_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-knowns8_0
                      knowns9_0
                      imports10_0
                      #f
                      mutated11_0
                      schemify13_0
                      target3_0
                      #t
                      #f)))
                (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-knowns8_0
                            knowns9_0
                            imports10_0
                            mutated11_0
                            simples12_0
                            unsafe-mode?2_0
                            target3_0))
                         (case-lambda
                          ((new-knowns_0 info_0)
                           (if letrec?1_0
                             (let ((app_0
                                    (letrec*
                                     ((loop_0
                                       (|#%name|
                                        loop
                                        (lambda (new-seq_2)
                                          (begin
                                            (if (begin-unsafe
                                                 (let ((app_0 (unwrap '())))
                                                   (eq?
                                                    app_0
                                                    (unwrap new-seq_2))))
                                              null
                                              (if (let ((p_0
                                                         (unwrap new-seq_2)))
                                                    (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)))
                                                                      (begin-unsafe
                                                                       (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_2)))
                                                     (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_2)))
                                                      (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)))
                                                                        (begin-unsafe
                                                                         (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)))
                                                                                  (begin-unsafe
                                                                                   (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_2)))
                                                       (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_1
                                                                         (let ((d_1
                                                                                (cdr
                                                                                 p_1)))
                                                                           (let ((a_1
                                                                                  (car
                                                                                   (unwrap
                                                                                    d_1))))
                                                                             a_1))))
                                                                    (let ((id_1
                                                                           id_0))
                                                                      (values
                                                                       id_1
                                                                       rhs_1))))))))
                                                        (case-lambda
                                                         ((id_0 rhs_1)
                                                          (let ((rest_0
                                                                 (let ((d_0
                                                                        (cdr
                                                                         p_0)))
                                                                   d_0)))
                                                            (let ((id_1 id_0)
                                                                  (rhs_2
                                                                   rhs_1))
                                                              (values
                                                               id_1
                                                               rhs_2
                                                               rest_0))))
                                                         (args
                                                          (raise-binding-result-arity-error
                                                           2
                                                           args))))))
                                                   (case-lambda
                                                    ((id_0 rhs_1 rest_0)
                                                     (let ((app_0
                                                            (list id_0 rhs_1)))
                                                       (cons
                                                        app_0
                                                        (loop_0 rest_0))))
                                                    (args
                                                     (raise-binding-result-arity-error
                                                      3
                                                      args))))
                                                  (error
                                                   'match
                                                   "failed ~e"
                                                   new-seq_2)))))))))
                                     (loop_0 new-seq_1))))
                               (list*
                                'letrec*
                                app_0
                                (schemify-body$1
                                 schemify13_0
                                 new-knowns_0
                                 bodys_0)))
                             (letrec*
                              ((loop_0
                                (|#%name|
                                 loop
                                 (lambda (new-seq_2)
                                   (begin
                                     (if (begin-unsafe
                                          (let ((app_0 (unwrap '())))
                                            (eq? app_0 (unwrap new-seq_2))))
                                       (let ((exprs_0
                                              (schemify-body$1
                                               schemify13_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_2)))
                                             (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)))
                                                               (begin-unsafe
                                                                (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_2)))
                                              (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_2)))
                                               (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)))
                                                                 (begin-unsafe
                                                                  (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)))
                                                                           (begin-unsafe
                                                                            (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_2)))
                                                (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_1
                                                                  (let ((d_1
                                                                         (cdr
                                                                          p_1)))
                                                                    (let ((a_1
                                                                           (car
                                                                            (unwrap
                                                                             d_1))))
                                                                      a_1))))
                                                             (let ((id_1 id_0))
                                                               (values
                                                                id_1
                                                                rhs_1))))))))
                                                 (case-lambda
                                                  ((id_0 rhs_1)
                                                   (let ((rest_0
                                                          (let ((d_0
                                                                 (cdr p_0)))
                                                            d_0)))
                                                     (let ((id_1 id_0)
                                                           (rhs_2 rhs_1))
                                                       (values
                                                        id_1
                                                        rhs_2
                                                        rest_0))))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    2
                                                    args))))))
                                            (case-lambda
                                             ((id_0 rhs_1 rest_0)
                                              (let ((app_0
                                                     (list (list id_0 rhs_1))))
                                                (list
                                                 'let
                                                 app_0
                                                 (loop_0 rest_0))))
                                             (args
                                              (raise-binding-result-arity-error
                                               3
                                               args))))
                                           (error
                                            'match
                                            "failed ~e"
                                            new-seq_2)))))))))
                              (loop_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)))
                                                        (begin-unsafe
                                                         (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))) (begin-unsafe (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
  (lambda (ids_0 mutated_0 target_0 e_0)
    (let ((need-convert?_0
           (if (not (eq? target_0 'cify))
             (letrec*
              ((loop_0
                (|#%name|
                 loop
                 (lambda (ids_1)
                   (begin
                     (if (symbol? ids_1)
                       (needs-letrec-convert-mutated-state?
                        (hash-ref mutated_0 ids_1 #f))
                       (if (begin-unsafe (syntax? ids_1))
                         (loop_0 (unwrap ids_1))
                         (if (pair? ids_1)
                           (let ((or-part_0 (loop_0 (car ids_1))))
                             (if or-part_0 or-part_0 (loop_0 (cdr ids_1))))
                           #f))))))))
              (loop_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
                                             (begin-unsafe
                                              (null? (unwrap lst_0))))
                                          (let ((v_0
                                                 (if (begin-unsafe
                                                      (pair? (unwrap lst_0)))
                                                   (wrap-car lst_0)
                                                   lst_0)))
                                            (let ((rest_0
                                                   (if (begin-unsafe
                                                        (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)))
                                                                          (begin-unsafe
                                                                           (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
                                        (begin-unsafe (null? (unwrap lst_0))))
                                     (let ((v_0
                                            (if (begin-unsafe
                                                 (pair? (unwrap lst_0)))
                                              (wrap-car lst_0)
                                              lst_0)))
                                       (let ((rest_0
                                              (if (begin-unsafe
                                                   (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 id-to-variable
  (lambda (int-id_0 exports_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 mutated-in-body
  (lambda (l_0
           exports_0
           extra-variables_0
           prim-knowns_0
           knowns_0
           imports_0
           simples_0
           unsafe-mode?_0
           target_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))))
        (let ((unexported-ids_0
               (begin
                 (letrec*
                  ((for-loop_0
                    (|#%name|
                     for-loop
                     (lambda (unexported-ids_0 lst_0)
                       (begin
                         (if (pair? lst_0)
                           (let ((form_0 (unsafe-car lst_0)))
                             (let ((rest_0 (unsafe-cdr lst_0)))
                               (let ((unexported-ids_1
                                      (let ((unexported-ids_1
                                             (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)))
                                                                     (begin-unsafe
                                                                      (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
                                                      (letrec*
                                                       ((for-loop_1
                                                         (|#%name|
                                                          for-loop
                                                          (lambda (unexported-ids_1
                                                                   lst_1)
                                                            (begin
                                                              (if (pair? lst_1)
                                                                (let ((id_0
                                                                       (unsafe-car
                                                                        lst_1)))
                                                                  (let ((rest_1
                                                                         (unsafe-cdr
                                                                          lst_1)))
                                                                    (let ((unexported-ids_2
                                                                           (let ((unexported-ids_2
                                                                                  (let ((u-id_0
                                                                                         (unwrap
                                                                                          id_0)))
                                                                                    (begin
                                                                                      (hash-set!
                                                                                       mutated_0
                                                                                       u-id_0
                                                                                       (if enforce-constant?_0
                                                                                         'not-ready
                                                                                         'set!ed-too-early))
                                                                                      (if (hash-ref
                                                                                           exports_0
                                                                                           u-id_0
                                                                                           #f)
                                                                                        unexported-ids_1
                                                                                        (cons
                                                                                         u-id_0
                                                                                         unexported-ids_1))))))
                                                                             (values
                                                                              unexported-ids_2))))
                                                                      (for-loop_1
                                                                       unexported-ids_2
                                                                       rest_1))))
                                                                unexported-ids_1))))))
                                                       (for-loop_1
                                                        unexported-ids_0
                                                        ids_0))))
                                                   (args
                                                    (raise-binding-result-arity-error
                                                     2
                                                     args))))
                                                 unexported-ids_0))))
                                        (values unexported-ids_1))))
                                 (for-loop_0 unexported-ids_1 rest_0))))
                           unexported-ids_0))))))
                  (for-loop_0 '() l_0)))))
          (let ((unexported-ready_0
                 (if (pair? unexported-ids_0)
                   (if (eq? target_0 'interp) (make-hasheq) #f)
                   #f)))
            (begin
              (if unexported-ready_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
                                    (hash-set!
                                     mutated_0
                                     id_0
                                     (lambda ()
                                       (if (let ((or-part_0
                                                  (hash-ref
                                                   unexported-ready_0
                                                   id_0
                                                   #f)))
                                             (if or-part_0
                                               or-part_0
                                               (set!ed-mutated-state?
                                                (hash-ref mutated_0 id_0 #f))))
                                         (void)
                                         (hash-set!
                                          mutated_0
                                          id_0
                                          'too-early))))
                                    (for-loop_0 rest_0))))
                              (values)))))))
                     (for-loop_0 unexported-ids_0)))
                  (void))
                (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
                                                target_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)))
                                                                         (begin-unsafe
                                                                          (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
                                                                                  (let ((prop-vals_0
                                                                                         (if (=
                                                                                              pos_0
                                                                                              0)
                                                                                           (pure-properties-list
                                                                                            e_0
                                                                                            prim-knowns_0
                                                                                            knowns_1
                                                                                            imports_0
                                                                                            mutated_0
                                                                                            simples_0)
                                                                                           #f)))
                                                                                    (if prop-vals_0
                                                                                      (begin
                                                                                        (begin
                                                                                          (letrec*
                                                                                           ((for-loop_2
                                                                                             (|#%name|
                                                                                              for-loop
                                                                                              (lambda (lst_3)
                                                                                                (begin
                                                                                                  (if (pair?
                                                                                                       lst_3)
                                                                                                    (let ((e_1
                                                                                                           (unsafe-car
                                                                                                            lst_3)))
                                                                                                      (let ((rest_2
                                                                                                             (unsafe-cdr
                                                                                                              lst_3)))
                                                                                                        (begin
                                                                                                          (find-mutated!
                                                                                                           e_1
                                                                                                           ids_0
                                                                                                           prim-knowns_0
                                                                                                           knowns_1
                                                                                                           imports_0
                                                                                                           mutated_0
                                                                                                           simples_0
                                                                                                           unsafe-mode?_0)
                                                                                                          (for-loop_2
                                                                                                           rest_2))))
                                                                                                    (values)))))))
                                                                                           (for-loop_2
                                                                                            prop-vals_0)))
                                                                                        (void))
                                                                                      (find-mutated!
                                                                                       e_0
                                                                                       ids_0
                                                                                       prim-knowns_0
                                                                                       knowns_1
                                                                                       imports_0
                                                                                       mutated_0
                                                                                       simples_0
                                                                                       unsafe-mode?_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
                                                             unsafe-mode?_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
                                                      unsafe-mode?_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)))
                                                        (begin-unsafe
                                                         (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)))
                                                               (begin
                                                                 (if unexported-ready_0
                                                                   (if (not
                                                                        (hash-ref
                                                                         exports_0
                                                                         id_1
                                                                         #f))
                                                                     (hash-set!
                                                                      unexported-ready_0
                                                                      id_1
                                                                      #t)
                                                                     (void))
                                                                   (void))
                                                                 (if (begin-unsafe
                                                                      (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)
              (if (if unsafe-mode?_0 unsafe-mode?_0 (eq? target_0 'system))
                (void)
                (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 ((state_0
                                           (hash-ref mutated_0 id_0 #f)))
                                      (if (via-variable-mutated-state? state_0)
                                        (id-to-variable
                                         id_0
                                         exports_0
                                         extra-variables_0)
                                        (void)))
                                    (for-loop_0 rest_0))))
                              (values)))))))
                     (for-loop_0 unexported-ids_0)))
                  (void)))
              mutated_0)))))))
(define find-mutated!
  (lambda (top-v_0
           ids_0
           prim-knowns_0
           knowns_0
           imports_0
           mutated_0
           simples_0
           unsafe-mode?_0)
    (let ((delay!_0
           (|#%name|
            delay!
            (lambda (ids_1 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)
                                              (if (procedure? m_0)
                                                (hash-set!
                                                 mutated_0
                                                 id_1
                                                 (lambda ()
                                                   (begin
                                                     (|#%app| m_0)
                                                     (force_0))))
                                                (force_0)))))
                                        (for-loop_0 rest_0))))
                                  (values)))))))
                         (for-loop_0 ids_1)))
                      (void)))))))))
      (letrec*
       ((find-mutated!_0
         (|#%name|
          find-mutated!
          (lambda (v_0 ids_1)
            (begin
              (let ((find-mutated!*_0
                     (|#%name|
                      find-mutated!*
                      (lambda (l_0 ids_2)
                        (begin
                          (letrec*
                           ((loop_0
                             (|#%name|
                              loop
                              (lambda (l_1)
                                (begin
                                  (if (null? l_1)
                                    (void)
                                    (if (null? (cdr l_1))
                                      (find-mutated!_0 (car l_1) ids_2)
                                      (begin
                                        (find-mutated!_0 (car l_1) #f)
                                        (loop_0 (cdr l_1))))))))))
                           (loop_0 l_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)
                       (if ids_1
                         (delay!_0
                          ids_1
                          (lambda () (find-mutated!*_0 body_0 #f)))
                         (find-mutated!*_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
                                             (begin-unsafe
                                              (null? (unwrap lst_0))))
                                          (let ((v_1
                                                 (if (begin-unsafe
                                                      (pair? (unwrap lst_0)))
                                                   (wrap-car lst_0)
                                                   lst_0)))
                                            (let ((rest_0
                                                   (if (begin-unsafe
                                                        (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
                                             (begin-unsafe
                                              (null? (unwrap lst_0))))
                                          (let ((v_1
                                                 (if (begin-unsafe
                                                      (pair? (unwrap lst_0)))
                                                   (wrap-car lst_0)
                                                   lst_0)))
                                            (let ((rest_0
                                                   (if (begin-unsafe
                                                        (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
                                                        ((formalss10_0
                                                          bodys11_0)
                                                         (values
                                                          (cons
                                                           formalss10_0
                                                           formalss_0)
                                                          (cons
                                                           bodys11_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_1
                           (delay!_0
                            ids_1
                            (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 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 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)))
                                    (begin-unsafe
                                     (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
                                                           (begin-unsafe
                                                            (null?
                                                             (unwrap lst_0))))
                                                        (let ((v_1
                                                               (if (begin-unsafe
                                                                    (pair?
                                                                     (unwrap
                                                                      lst_0)))
                                                                 (wrap-car
                                                                  lst_0)
                                                                 lst_0)))
                                                          (let ((rest_0
                                                                 (if (begin-unsafe
                                                                      (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)))
                                                                                        (begin-unsafe
                                                                                         (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
                                                        (begin-unsafe
                                                         (null?
                                                          (unwrap lst_0))))
                                                     (let ((v_1
                                                            (if (begin-unsafe
                                                                 (pair?
                                                                  (unwrap
                                                                   lst_0)))
                                                              (wrap-car lst_0)
                                                              lst_0)))
                                                       (let ((rest_0
                                                              (if (begin-unsafe
                                                                   (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
                                                                   ((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 ((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_2 (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
                                                      rhs_0
                                                      ids_2)
                                                     (for-loop_0
                                                      rest_0
                                                      rest_1))))))
                                           (values)))))))
                                  (for-loop_0 idss_0 rhss_0)))
                               (void)
                               (find-mutated!*_0 bodys_0 ids_1)))
                            (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
                                                             (begin-unsafe
                                                              (null?
                                                               (unwrap
                                                                lst_0))))
                                                          (let ((v_1
                                                                 (if (begin-unsafe
                                                                      (pair?
                                                                       (unwrap
                                                                        lst_0)))
                                                                   (wrap-car
                                                                    lst_0)
                                                                   lst_0)))
                                                            (let ((rest_0
                                                                   (if (begin-unsafe
                                                                        (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)))
                                                                                          (begin-unsafe
                                                                                           (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
                                                          (begin-unsafe
                                                           (null?
                                                            (unwrap lst_0))))
                                                       (let ((v_1
                                                              (if (begin-unsafe
                                                                   (pair?
                                                                    (unwrap
                                                                     lst_0)))
                                                                (wrap-car
                                                                 lst_0)
                                                                lst_0)))
                                                         (let ((rest_0
                                                                (if (begin-unsafe
                                                                     (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
                                                                     ((idss14_0
                                                                       rhss15_0)
                                                                      (values
                                                                       (cons
                                                                        idss14_0
                                                                        idss_0)
                                                                       (cons
                                                                        rhss15_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
                                  (letrec-split-values-binding
                                   idss_0
                                   rhss_0
                                   bodys_0)
                                  ids_1)
                                 (begin
                                   (begin
                                     (letrec*
                                      ((for-loop_0
                                        (|#%name|
                                         for-loop
                                         (lambda (lst_0)
                                           (begin
                                             (if (pair? lst_0)
                                               (let ((ids_2
                                                      (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
                                                                     (begin-unsafe
                                                                      (null?
                                                                       (unwrap
                                                                        lst_1))))
                                                                  (let ((id_0
                                                                         (if (begin-unsafe
                                                                              (pair?
                                                                               (unwrap
                                                                                lst_1)))
                                                                           (wrap-car
                                                                            lst_1)
                                                                           lst_1)))
                                                                    (let ((rest_1
                                                                           (if (begin-unsafe
                                                                                (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_2))))
                                                    (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_2
                                                      (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
                                                                        rhs_0
                                                                        (unwrap-list
                                                                         ids_2))
                                                                       (let ((new-maybe-cc?_0
                                                                              (if maybe-cc?_0
                                                                                maybe-cc?_0
                                                                                (not
                                                                                 (let ((temp24_0
                                                                                        (length
                                                                                         ids_2)))
                                                                                   (simple?.1
                                                                                    #f
                                                                                    #f
                                                                                    temp24_0
                                                                                    rhs_0
                                                                                    prim-knowns_0
                                                                                    knowns_0
                                                                                    imports_0
                                                                                    mutated_0
                                                                                    simples_0
                                                                                    unsafe-mode?_0))))))
                                                                         (begin
                                                                           (begin
                                                                             (letrec*
                                                                              ((for-loop_1
                                                                                (|#%name|
                                                                                 for-loop
                                                                                 (lambda (lst_2)
                                                                                   (begin
                                                                                     (if (not
                                                                                          (begin-unsafe
                                                                                           (null?
                                                                                            (unwrap
                                                                                             lst_2))))
                                                                                       (let ((id_0
                                                                                              (if (begin-unsafe
                                                                                                   (pair?
                                                                                                    (unwrap
                                                                                                     lst_2)))
                                                                                                (wrap-car
                                                                                                 lst_2)
                                                                                                lst_2)))
                                                                                         (let ((rest_2
                                                                                                (if (begin-unsafe
                                                                                                     (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)))
                                                                                                   (let ((add-too-early-name!_0
                                                                                                          (|#%name|
                                                                                                           add-too-early-name!
                                                                                                           (lambda ()
                                                                                                             (begin
                                                                                                               (let ((c2_0
                                                                                                                      (if (eq?
                                                                                                                           'too-early
                                                                                                                           state_0)
                                                                                                                        (wrap-property
                                                                                                                         id_1
                                                                                                                         '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_1
                                                                                                                             'undefined-error-name)
                                                                                                                            #f)))
                                                                                                                     (if c1_0
                                                                                                                       (hash-set!
                                                                                                                        mutated_0
                                                                                                                        u-id_0
                                                                                                                        (too-early1.1
                                                                                                                         c1_0
                                                                                                                         #t))
                                                                                                                       (void))))))))))
                                                                                                     (if new-maybe-cc?_0
                                                                                                       (begin
                                                                                                         (if (let ((or-part_0
                                                                                                                    (eq?
                                                                                                                     'not-ready
                                                                                                                     state_0)))
                                                                                                               (if or-part_0
                                                                                                                 or-part_0
                                                                                                                 (begin-unsafe
                                                                                                                  (procedure?
                                                                                                                   state_0))))
                                                                                                           (hash-set!
                                                                                                            mutated_0
                                                                                                            u-id_0
                                                                                                            'implicitly-set!ed)
                                                                                                           (add-too-early-name!_0))
                                                                                                         (if (begin-unsafe
                                                                                                              (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))))))
                                                                                               (for-loop_1
                                                                                                rest_2)))))
                                                                                       (values)))))))
                                                                              (for-loop_1
                                                                               ids_2)))
                                                                           (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 bodys_0 ids_1))))
                              (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)))
                                                      (begin-unsafe
                                                       (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 tst_0 #f)
                                   (find-mutated!_0 thn_0 #f)
                                   (find-mutated!_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)))
                                                        (begin-unsafe
                                                         (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 key_0 #f)
                                     (find-mutated!_0 val_0 #f)
                                     (find-mutated!_0 body_0 ids_1)))
                                  (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 exps_0 ids_1))
                                  (if (if (eq? 'begin-unsafe 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 exps_0 ids_1))
                                    (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 exp_0 ids_1)
                                           (find-mutated!*_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)))
                                                          (begin-unsafe
                                                           (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 (begin-unsafe
                                                        (procedure?
                                                         old-state_0))
                                                     (|#%app| old-state_0)
                                                     (void)))))
                                             (find-mutated!_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_1
                                                     (let ((rator_1
                                                            (unwrap rator_0)))
                                                       (if (symbol? rator_1)
                                                         (if (let ((v_1
                                                                    (begin-unsafe
                                                                     (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 (let ((or-part_0
                                                                          (known-constructor?
                                                                           v_1)))
                                                                     (if or-part_0
                                                                       or-part_0
                                                                       (let ((or-part_1
                                                                              (eq?
                                                                               rator_1
                                                                               'cons)))
                                                                         (if or-part_1
                                                                           or-part_1
                                                                           (let ((or-part_2
                                                                                  (eq?
                                                                                   rator_1
                                                                                   'list)))
                                                                             (if or-part_2
                                                                               or-part_2
                                                                               (let ((or-part_3
                                                                                      (eq?
                                                                                       rator_1
                                                                                       'vector)))
                                                                                 (if or-part_3
                                                                                   or-part_3
                                                                                   (eq?
                                                                                    rator_1
                                                                                    'make-struct-type-property)))))))))
                                                                 (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
                                                                                          #f
                                                                                          #t
                                                                                          1
                                                                                          exp_0
                                                                                          prim-knowns_0
                                                                                          knowns_0
                                                                                          imports_0
                                                                                          mutated_0
                                                                                          simples_0
                                                                                          unsafe-mode?_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
                                                  ids_1
                                                  (lambda ()
                                                    (find-mutated!*_0
                                                     exps_0
                                                     #f)))
                                                 (begin
                                                   (find-mutated!_0 rator_0 #f)
                                                   (find-mutated!*_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 (begin-unsafe
                                                       (eq?
                                                        state_0
                                                        'not-ready))
                                                    (hash-set!
                                                     mutated_0
                                                     v_1
                                                     'too-early)
                                                    (if (begin-unsafe
                                                         (procedure? state_0))
                                                      (if ids_1
                                                        (delay!_0
                                                         ids_1
                                                         (lambda ()
                                                           (begin
                                                             (if (eq?
                                                                  (hash-ref
                                                                   mutated_0
                                                                   v_1
                                                                   #f)
                                                                  state_0)
                                                               (hash-remove!
                                                                mutated_0
                                                                v_1)
                                                               (void))
                                                             (|#%app|
                                                              state_0))))
                                                        (begin
                                                          (hash-remove!
                                                           mutated_0
                                                           v_1)
                                                          (|#%app| state_0)))
                                                      (void))))
                                                (void)))))))))))))))))))))))
       (find-mutated!_0 top-v_0 ids_0)))))
(define update-mutated-state!
  (lambda (l_0 mut-l_0 mutated_0)
    (if (begin-unsafe (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 (begin-unsafe (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)))
                                                   (begin-unsafe
                                                    (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
  (lambda (ids_0
           rhss_0
           bodys_0
           prim-knowns_0
           knowns_0
           imports_0
           mutated_0
           simples_0
           unsafe-mode?_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)
        (letrec*
         ((loop_0
           (|#%name|
            loop
            (lambda (ids_1 rhss_1 all-simple?_0 binds_0)
              (begin
                (if (null? (cdr rhss_1))
                  (let ((id_0 (car ids_1)))
                    (let ((rhs_0 (car rhss_1)))
                      (if (if all-simple?_0
                            (simple?.1
                             #f
                             #t
                             1
                             rhs_0
                             prim-knowns_0
                             knowns_0
                             imports_0
                             mutated_0
                             simples_0
                             unsafe-mode?_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_1)))
                    (let ((rhs_0 (car rhss_1)))
                      (let ((app_0 (list (list id_0 rhs_0))))
                        (list
                         'let
                         app_0
                         (let ((app_1 (cdr ids_1)))
                           (let ((app_2 (cdr rhss_1)))
                             (let ((app_3
                                    (if all-simple?_0
                                      (simple?.1
                                       #f
                                       #t
                                       1
                                       rhs_0
                                       prim-knowns_0
                                       knowns_0
                                       imports_0
                                       mutated_0
                                       simples_0
                                       unsafe-mode?_0)
                                      #f)))
                               (loop_0
                                app_1
                                app_2
                                app_3
                                (cons (list id_0 id_0) binds_0)))))))))))))))
         (loop_0 ids_0 rhss_0 #t null))))))
(define left-to-right/let-values
  (lambda (idss_0 rhss_0 bodys_0 mutated_0 target_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 target_0)))
      (letrec*
       ((loop_0
         (|#%name|
          loop
          (lambda (idss_1 rhss_1 binds_0)
            (begin
              (if (null? (cdr rhss_1))
                (let ((app_0 (car idss_1)))
                  (let ((app_1 (car rhss_1)))
                    (make-let-values
                     app_0
                     app_1
                     (list* 'let binds_0 bodys_0)
                     target_0)))
                (let ((ids_0 (car idss_1)))
                  (let ((app_0 (car rhss_1)))
                    (make-let-values
                     ids_0
                     app_0
                     (let ((app_1 (cdr idss_1)))
                       (let ((app_2 (cdr rhss_1)))
                         (loop_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
                                           (begin-unsafe
                                            (null? (unwrap lst_0))))
                                        (let ((id_0
                                               (if (begin-unsafe
                                                    (pair? (unwrap lst_0)))
                                                 (wrap-car lst_0)
                                                 lst_0)))
                                          (let ((rest_0
                                                 (if (begin-unsafe
                                                      (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))))
                     target_0)))))))))
       (loop_0 idss_0 rhss_0 null)))))
(define left-to-right/app
  (lambda (rator_0
           rands_0
           app-form_0
           target_0
           prim-knowns_0
           knowns_0
           imports_0
           mutated_0
           simples_0
           unsafe-mode?_0)
    (if (eq? target_0 'cify)
      (cons rator_0 rands_0)
      (let ((l_0 (cons rator_0 rands_0)))
        (let ((modes_0
               (letrec*
                ((loop_0
                  (|#%name|
                   loop
                   (lambda (l_1)
                     (begin
                       (if (null? l_1)
                         'pure
                         (let ((modes_0 (loop_0 (cdr l_1))))
                           (if (let ((temp15_0 (car l_1)))
                                 (simple?.1
                                  #t
                                  #t
                                  1
                                  temp15_0
                                  prim-knowns_0
                                  knowns_0
                                  imports_0
                                  mutated_0
                                  simples_0
                                  unsafe-mode?_0))
                             (if (symbol? modes_0)
                               modes_0
                               (cons 'pure modes_0))
                             (if (let ((temp23_0 (car l_1)))
                                   (simple?.1
                                    #f
                                    #t
                                    1
                                    temp23_0
                                    prim-knowns_0
                                    knowns_0
                                    imports_0
                                    mutated_0
                                    simples_0
                                    unsafe-mode?_0))
                               (if (symbol? modes_0)
                                 'alloc
                                 (cons 'bind modes_0))
                               (if (eq? modes_0 'pure)
                                 (cons 'non-simple modes_0)
                                 (cons 'bind modes_0)))))))))))
                (loop_0 l_0))))
          (let ((no-bind-needed?_0
                 (letrec*
                  ((loop_0
                    (|#%name|
                     loop
                     (lambda (modes_1)
                       (begin
                         (if (symbol? modes_1)
                           #t
                           (if (eq? (car modes_1) 'pure)
                             (loop_0 (cdr modes_1))
                             (if (eq? (car modes_1) 'non-simple) #t #f))))))))
                  (loop_0 modes_0))))
            (if no-bind-needed?_0
              (if app-form_0 (cons app-form_0 l_0) l_0)
              (letrec*
               ((loop_0
                 (|#%name|
                  loop
                  (lambda (l_1 modes_1 accum_0)
                    (begin
                      (if (let ((or-part_0 (symbol? modes_1)))
                            (if or-part_0
                              or-part_0
                              (eq? (car modes_1) 'non-simple)))
                        (let ((app_0 (append (reverse$1 accum_0) l_1)))
                          (if app-form_0 (cons app-form_0 app_0) app_0))
                        (if (eq? (car modes_1) 'bind)
                          (let ((g_0 (deterministic-gensym "app_")))
                            (let ((app_0 (list (list g_0 (car l_1)))))
                              (list
                               'let
                               app_0
                               (let ((app_1 (cdr l_1)))
                                 (let ((app_2 (cdr modes_1)))
                                   (loop_0 app_1 app_2 (cons g_0 accum_0)))))))
                          (let ((app_0 (cdr l_1)))
                            (let ((app_1 (cdr modes_1)))
                              (loop_0
                               app_0
                               app_1
                               (cons (car l_1) accum_0)))))))))))
               (loop_0 l_0 modes_0 null)))))))))
(define make-let-values
  (lambda (ids_0 rhs_0 body_0 target_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)))
                                            (begin-unsafe
                                             (let ((app_0 (unwrap 'values)))
                                               (eq? app_0 (unwrap a_3)))))
                                        (let ((a_3 (cdr p_2)))
                                          (begin-unsafe
                                           (let ((app_0 (unwrap '())))
                                             (eq? app_0 (unwrap a_3)))))
                                        #f)
                                      #f)))
                              (let ((a_2 (cdr p_1)))
                                (begin-unsafe
                                 (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 (eq? target_0 'cify)
              (list
               'call-with-values
               (list 'lambda '() rhs_0)
               (list 'lambda ids_0 body_0))
              (let ((app_0 (list 'lambda '() rhs_0)))
                (list
                 'call-with-values
                 app_0
                 (let ((app_1 (list ids_0 body_0)))
                   (list
                    'case-lambda
                    app_1
                    (list
                     'args
                     (let ((app_2
                            (if (eq? target_0 'system)
                              '()
                              '(|#%app/no-return|))))
                       (qq-append
                        app_2
                        (list*
                         'raise-binding-result-arity-error
                         (length ids_0)
                         '(args))))))))))))))))
(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)))
                    (begin-unsafe
                     (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)))
                    (begin-unsafe
                     (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 always-eq/no-marks?
  (lambda (e1_0 e2_0 mutated_0)
    (let ((hd_0
           (let ((p_0 (unwrap e1_0))) (if (pair? p_0) (unwrap (car p_0)) #f))))
      (if (if (eq? 'quote hd_0)
            (let ((a_0 (cdr (unwrap e1_0))))
              (let ((p_0 (unwrap a_0)))
                (if (pair? p_0)
                  (let ((a_1 (cdr p_0)))
                    (begin-unsafe
                     (let ((app_0 (unwrap '()))) (eq? app_0 (unwrap a_1)))))
                  #f)))
            #f)
        (let ((v1_0
               (let ((d_0 (cdr (unwrap e1_0))))
                 (let ((a_0 (car (unwrap d_0)))) a_0))))
          (let ((hd_1
                 (let ((p_0 (unwrap e2_0)))
                   (if (pair? p_0) (unwrap (car p_0)) #f))))
            (if (if (eq? 'quote hd_1)
                  (let ((a_0 (cdr (unwrap e2_0))))
                    (let ((p_0 (unwrap a_0)))
                      (if (pair? p_0)
                        (let ((a_1 (cdr p_0)))
                          (begin-unsafe
                           (let ((app_0 (unwrap '())))
                             (eq? app_0 (unwrap a_1)))))
                        #f)))
                  #f)
              (let ((v2_0
                     (let ((d_0 (cdr (unwrap e2_0))))
                       (let ((a_0 (car (unwrap d_0)))) a_0))))
                (eq? v1_0 v2_0))
              #f)))
        (let ((u-e1_0 (unwrap e1_0)))
          (if (symbol? u-e1_0)
            (if (eq? u-e1_0 (unwrap e2_0))
              (simple-mutated-state? (hash-ref mutated_0 u-e1_0 #f))
              #f)
            #f))))))
(define unnest-let
  (lambda (e_0
           prim-knowns_0
           knowns_0
           imports_0
           mutated_0
           simples_0
           unsafe-mode?_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
                                                                            (begin-unsafe
                                                                             (null?
                                                                              (unwrap
                                                                               lst_0))))
                                                                         (let ((v_1
                                                                                (if (begin-unsafe
                                                                                     (pair?
                                                                                      (unwrap
                                                                                       lst_0)))
                                                                                  (wrap-car
                                                                                   lst_0)
                                                                                  lst_0)))
                                                                           (let ((rest_0
                                                                                  (if (begin-unsafe
                                                                                       (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)))
                                                                                                         (begin-unsafe
                                                                                                          (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)))
                                                               (begin-unsafe
                                                                (let ((app_0
                                                                       (unwrap
                                                                        '())))
                                                                  (eq?
                                                                   app_0
                                                                   (unwrap
                                                                    a_4)))))
                                                             #f)))
                                                       #f)
                                                     #f)))
                                               #f)))
                                       (let ((a_1 (cdr p_1)))
                                         (begin-unsafe
                                          (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
                                                                         (begin-unsafe
                                                                          (null?
                                                                           (unwrap
                                                                            lst_0))))
                                                                      (let ((v_1
                                                                             (if (begin-unsafe
                                                                                  (pair?
                                                                                   (unwrap
                                                                                    lst_0)))
                                                                               (wrap-car
                                                                                lst_0)
                                                                               lst_0)))
                                                                        (let ((rest_0
                                                                               (if (begin-unsafe
                                                                                    (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
                                                                     #f
                                                                     #t
                                                                     1
                                                                     rhs_0
                                                                     prim-knowns_0
                                                                     knowns_0
                                                                     imports_0
                                                                     mutated_0
                                                                     simples_0
                                                                     unsafe-mode?_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)))
                                                                        (begin-unsafe
                                                                         (let ((app_0
                                                                                (unwrap
                                                                                 '())))
                                                                           (eq?
                                                                            app_0
                                                                            (unwrap
                                                                             a_4)))))
                                                                      #f)))
                                                                #f)))
                                                          #f)))
                                                  (let ((a_1 (cdr p_1)))
                                                    (begin-unsafe
                                                     (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)
                                        (let ((app_0 (cdr binds_1)))
                                          (loop_0
                                           app_0
                                           (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
                                           (let ((app_1 (list id_0 body_1)))
                                             (cons
                                              app_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)))
                                         (begin-unsafe
                                          (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 (begin-unsafe (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
  (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)
           (let ((add-property_0
                  (|#%name|
                   add-property
                   (lambda (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))))))))))
             (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
                (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
                  (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)))
                                        (begin-unsafe
                                         (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)))
                                                (begin-unsafe
                                                 (let ((app_0 (unwrap 'abs)))
                                                   (eq? app_0 (unwrap a_4)))))
                                            (let ((a_4 (cdr p_4)))
                                              (begin-unsafe
                                               (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)))
                                  (begin-unsafe
                                   (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)))
                            (begin-unsafe
                             (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)))
                        (begin-unsafe
                         (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)))
                                        (begin-unsafe
                                         (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)))
                                                (begin-unsafe
                                                 (let ((app_0 (unwrap 'abs)))
                                                   (eq? app_0 (unwrap a_4)))))
                                            (let ((a_4 (cdr p_4)))
                                              (begin-unsafe
                                               (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)))
                                        (begin-unsafe
                                         (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)))
                                  (begin-unsafe
                                   (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)))
                              (begin-unsafe
                               (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
  (lambda (type-e_0 ptr-e_0 offset-e_0 abs?_0 make_0 val-e_0)
    (let ((do-make_0
           (|#%name|
            do-make
            (lambda (ref_0 set_0)
              (begin
                (|#%app|
                 make_0
                 ref_0
                 set_0
                 ptr-e_0
                 offset-e_0
                 val-e_0
                 abs?_0))))))
      (let ((tmp_0 (unwrap type-e_0)))
        (if (eq? tmp_0 '_int8)
          (do-make_0 'ptr-ref/int8 'ptr-set!/int8)
          (if (eq? tmp_0 '_uint8)
            (do-make_0 'ptr-ref/uint8 'ptr-set!/uint8)
            (if (eq? tmp_0 '_int16)
              (do-make_0 'ptr-ref/int16 'ptr-set!/int16)
              (if (eq? tmp_0 '_uint16)
                (do-make_0 'ptr-ref/uint16 'ptr-set!/uint16)
                (if (eq? tmp_0 '_int32)
                  (do-make_0 'ptr-ref/int32 'ptr-set!/int32)
                  (if (eq? tmp_0 '_uint32)
                    (do-make_0 'ptr-ref/uint32 'ptr-set!/uint32)
                    (if (eq? tmp_0 '_int64)
                      (do-make_0 'ptr-ref/int64 'ptr-set!/int64)
                      (if (eq? tmp_0 '_uint64)
                        (do-make_0 'ptr-ref/uint64 'ptr-set!/uint64)
                        (if (eq? tmp_0 '_double)
                          (do-make_0 'ptr-ref/double 'ptr-set!/double)
                          (if (eq? tmp_0 '_float)
                            (do-make_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)))
                            (begin-unsafe
                             (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 schemify-linklet
  (lambda (lk_0
           serializable?-box_0
           datum-intern?_0
           target_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
     (let ((app_0 (continuation-mark-set-first #f parameterization-key)))
       (extend-parameterization app_0 gensym-counter (box 0)))
     (let ((im-int-id_0
            (|#%name|
             im-int-id
             (lambda (id_0)
               (begin (unwrap (if (pair? id_0) (cadr id_0) id_0)))))))
       (let ((im-ext-id_0
              (|#%name|
               im-ext-id
               (lambda (id_0)
                 (begin (unwrap (if (pair? id_0) (car id_0) id_0)))))))
         (let ((ex-int-id_0
                (|#%name|
                 ex-int-id
                 (lambda (id_0)
                   (begin (unwrap (if (pair? id_0) (car id_0) id_0)))))))
           (let ((ex-ext-id_0
                  (|#%name|
                   ex-ext-id
                   (lambda (id_0)
                     (begin (unwrap (if (pair? id_0) (cadr id_0) id_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)))))
                              (let ((src-syms_0
                                     (get-definition-source-syms bodys_0)))
                                (call-with-values
                                 (lambda ()
                                   (schemify-body*
                                    bodys_0
                                    prim-knowns_0
                                    primitives_0
                                    imports_0
                                    exports_0
                                    serializable?-box_0
                                    datum-intern?_0
                                    allow-set!-undefined?_0
                                    add-import!_0
                                    target_0
                                    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
                                            (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?-box_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 3 args))))
                 (error 'match "failed ~e" lk_0))))))))))
(define schemify-body
  (lambda (l_0
           prim-knowns_0
           primitives_0
           imports_0
           exports_0
           target_0
           unsafe-mode?_0
           no-prompt?_0
           explicit-unnamed?_0)
    (with-continuation-mark*
     authentic
     parameterization-key
     (let ((app_0 (continuation-mark-set-first #f parameterization-key)))
       (extend-parameterization app_0 gensym-counter (box 0)))
     (call-with-values
      (lambda ()
        (schemify-body*
         l_0
         prim-knowns_0
         primitives_0
         imports_0
         exports_0
         #f
         #f
         #f
         (lambda (im_0 ext-id_0 index_0) #f)
         target_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*
  (lambda (l_0
           prim-knowns_0
           primitives_0
           imports_0
           exports_0
           serializable?-box_0
           datum-intern?_0
           allow-set!-undefined?_0
           add-import!_0
           target_0
           unsafe-mode?_0
           enforce-constant?_0
           allow-inline?_0
           no-prompt?_0
           explicit-unnamed?_0)
    (let ((extra-variables_0 (make-hasheq)))
      (let ((add-extra-variables_0
             (|#%name|
              add-extra-variables
              (lambda (l_1)
                (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
                                                  (let ((app_0
                                                         (export-id ex_0)))
                                                    (list
                                                     'define
                                                     app_0
                                                     (list
                                                      'make-internal-variable
                                                      (list 'quote int-id_0))))
                                                  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_1))))))
        (let ((simples_0 (make-hasheq)))
          (let ((mutated_0
                 (mutated-in-body
                  l_0
                  exports_0
                  extra-variables_0
                  prim-knowns_0
                  (hasheq)
                  imports_0
                  simples_0
                  unsafe-mode?_0
                  target_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
                                                     target_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 ((final-knowns_0 knowns_0))
                (let ((schemified_0
                       (letrec*
                        ((loop_0
                          (|#%name|
                           loop
                           (lambda (l_1
                                    in-mut-l_0
                                    accum-exprs_0
                                    accum-ids_0
                                    knowns_1)
                             (begin
                               (let ((mut-l_0
                                      (update-mutated-state!
                                       l_1
                                       in-mut-l_0
                                       mutated_0)))
                                 (let ((make-set-variables_0
                                        (|#%name|
                                         make-set-variables
                                         (lambda ()
                                           (begin
                                             (if (let ((or-part_0
                                                        (eq? target_0 'cify)))
                                                   (if or-part_0
                                                     or-part_0
                                                     (eq? target_0 'interp)))
                                               (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 (let ((or-part_0
                                                                                  (hash-ref
                                                                                   exports_0
                                                                                   (unwrap
                                                                                    id_0)
                                                                                   #f)))
                                                                             (if or-part_0
                                                                               or-part_0
                                                                               (hash-ref
                                                                                extra-variables_0
                                                                                (unwrap
                                                                                 id_0)
                                                                                #f)))
                                                                         (let ((fold-var_1
                                                                                (cons
                                                                                 (make-set-variable
                                                                                  id_0
                                                                                  exports_0
                                                                                  knowns_1
                                                                                  mutated_0
                                                                                  extra-variables_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))))
                                               (letrec*
                                                ((loop_1
                                                  (|#%name|
                                                   loop
                                                   (lambda (accum-ids_1
                                                            consistent-ids_0)
                                                     (begin
                                                       (if (null? accum-ids_1)
                                                         (make-set-consistent-variables
                                                          consistent-ids_0
                                                          exports_0
                                                          knowns_1
                                                          mutated_0
                                                          extra-variables_0)
                                                         (let ((id_0
                                                                (car
                                                                 accum-ids_1)))
                                                           (let ((u-id_0
                                                                  (unwrap
                                                                   id_0)))
                                                             (if (let ((or-part_0
                                                                        (hash-ref
                                                                         exports_0
                                                                         u-id_0
                                                                         #f)))
                                                                   (if or-part_0
                                                                     or-part_0
                                                                     (hash-ref
                                                                      extra-variables_0
                                                                      u-id_0
                                                                      #f)))
                                                               (if (eq?
                                                                    'consistent
                                                                    (variable-constance
                                                                     u-id_0
                                                                     knowns_1
                                                                     mutated_0))
                                                                 (let ((app_0
                                                                        (cdr
                                                                         accum-ids_1)))
                                                                   (loop_1
                                                                    app_0
                                                                    (cons
                                                                     id_0
                                                                     consistent-ids_0)))
                                                                 (let ((app_0
                                                                        (make-set-consistent-variables
                                                                         consistent-ids_0
                                                                         exports_0
                                                                         knowns_1
                                                                         mutated_0
                                                                         extra-variables_0)))
                                                                   (append
                                                                    app_0
                                                                    (let ((app_1
                                                                           (make-set-variable
                                                                            id_0
                                                                            exports_0
                                                                            knowns_1
                                                                            mutated_0
                                                                            extra-variables_0)))
                                                                      (cons
                                                                       app_1
                                                                       (loop_1
                                                                        (cdr
                                                                         accum-ids_1)
                                                                        '()))))))
                                                               (loop_1
                                                                (cdr
                                                                 accum-ids_1)
                                                                consistent-ids_0))))))))))
                                                (loop_1
                                                 accum-ids_0
                                                 null))))))))
                                   (let ((make-expr-defns_0
                                          (|#%name|
                                           make-expr-defns
                                           (lambda (es_0)
                                             (begin
                                               (if (let ((or-part_0
                                                          (eq?
                                                           target_0
                                                           'cify)))
                                                     (if or-part_0
                                                       or-part_0
                                                       (eq? target_0 'interp)))
                                                 (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)))))))))))
                                     (if (null? l_1)
                                       (begin
                                         (set! final-knowns_0 knowns_1)
                                         (let ((set-vars_0
                                                (make-set-variables_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_1)))
                                         (let ((schemified_0
                                                (schemify
                                                 form_0
                                                 prim-knowns_0
                                                 primitives_0
                                                 knowns_1
                                                 mutated_0
                                                 imports_0
                                                 exports_0
                                                 extra-variables_0
                                                 simples_0
                                                 allow-set!-undefined?_0
                                                 add-import!_0
                                                 serializable?-box_0
                                                 datum-intern?_0
                                                 target_0
                                                 unsafe-mode?_0
                                                 allow-inline?_0
                                                 no-prompt?_0
                                                 explicit-unnamed?_0
                                                 (if (if no-prompt?_0
                                                       (null? (cdr l_1))
                                                       #f)
                                                   'tail
                                                   'fresh))))
                                           (let ((finish-definition_0
                                                  (|#%name|
                                                   finish-definition
                                                   (lambda (knowns16_0
                                                            next-k18_0
                                                            schemified17_0
                                                            ids24_0
                                                            accum-exprs22_0
                                                            accum-ids23_0)
                                                     (begin
                                                       (let ((accum-exprs_1
                                                              (if (eq?
                                                                   accum-exprs22_0
                                                                   unsafe-undefined)
                                                                accum-exprs_0
                                                                accum-exprs22_0)))
                                                         (let ((accum-ids_1
                                                                (if (eq?
                                                                     accum-ids23_0
                                                                     unsafe-undefined)
                                                                  accum-ids_0
                                                                  accum-ids23_0)))
                                                           (let ((knowns_2
                                                                  (if (eq?
                                                                       knowns16_0
                                                                       unsafe-undefined)
                                                                    knowns_1
                                                                    knowns16_0)))
                                                             (let ((schemified_1
                                                                    (if (eq?
                                                                         schemified17_0
                                                                         unsafe-undefined)
                                                                      schemified_0
                                                                      schemified17_0)))
                                                               (let ((next-knowns_0
                                                                      (if (if (pair?
                                                                               ids24_0)
                                                                            (if (null?
                                                                                 (cdr
                                                                                  ids24_0))
                                                                              (can-improve-infer-known?
                                                                               (hash-ref
                                                                                knowns_2
                                                                                (unwrap
                                                                                 (car
                                                                                  ids24_0))
                                                                                #f))
                                                                              #f)
                                                                            #f)
                                                                        (let ((id_0
                                                                               (car
                                                                                ids24_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)))
                                                                                                       (begin-unsafe
                                                                                                        (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_2
                                                                                         prim-knowns_0
                                                                                         imports_0
                                                                                         mutated_0
                                                                                         simples_0
                                                                                         unsafe-mode?_0
                                                                                         target_0))
                                                                                       (args
                                                                                        (raise-binding-result-arity-error
                                                                                         2
                                                                                         args))))
                                                                                     (error
                                                                                      'match
                                                                                      "failed ~e"
                                                                                      schemified_1)))))
                                                                            (if k_0
                                                                              (hash-set
                                                                               knowns_2
                                                                               (unwrap
                                                                                id_0)
                                                                               k_0)
                                                                              knowns_2)))
                                                                        knowns_2)))
                                                                 (let ((app_0
                                                                        (make-expr-defns_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-k18_0
                                                                                 (|#%app|
                                                                                  next-k18_0
                                                                                  accum-exprs_2
                                                                                  accum-ids_2
                                                                                  next-knowns_0)
                                                                                 (loop_0
                                                                                  (cdr
                                                                                   l_1)
                                                                                  mut-l_0
                                                                                  accum-exprs_2
                                                                                  accum-ids_2
                                                                                  next-knowns_0))
                                                                               (if (let ((or-part_0
                                                                                          (eq?
                                                                                           target_0
                                                                                           'interp)))
                                                                                     (let ((or-part_1
                                                                                            (if or-part_0
                                                                                              or-part_0
                                                                                              (eq?
                                                                                               target_0
                                                                                               'cify))))
                                                                                       (if or-part_1
                                                                                         or-part_1
                                                                                         (via-variable-mutated-state?
                                                                                          (hash-ref
                                                                                           mutated_0
                                                                                           (unwrap
                                                                                            (car
                                                                                             ids_0))
                                                                                           #f)))))
                                                                                 (let ((id_0
                                                                                        (unwrap
                                                                                         (car
                                                                                          ids_0))))
                                                                                   (if (let ((or-part_0
                                                                                              (hash-ref
                                                                                               exports_0
                                                                                               id_0
                                                                                               #f)))
                                                                                         (if or-part_0
                                                                                           or-part_0
                                                                                           (hash-ref
                                                                                            extra-variables_0
                                                                                            id_0
                                                                                            #f)))
                                                                                     (let ((app_1
                                                                                            (cdr
                                                                                             ids_0)))
                                                                                       (id-loop_0
                                                                                        app_1
                                                                                        (cons
                                                                                         (make-set-variable
                                                                                          id_0
                                                                                          exports_0
                                                                                          knowns_2
                                                                                          mutated_0
                                                                                          extra-variables_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
                                                                       ids24_0
                                                                       null
                                                                       accum-ids_1)))))))))))))))
                                             (let ((finish-wrapped-definition_0
                                                    (|#%name|
                                                     finish-wrapped-definition
                                                     (lambda (ids_0 rhs_0)
                                                       (begin
                                                         (let ((app_0
                                                                (make-expr-defns_0
                                                                 accum-exprs_0)))
                                                           (let ((app_1
                                                                  (make-expr-defns_0
                                                                   (make-set-variables_0))))
                                                             (append
                                                              app_0
                                                              app_1
                                                              (if no-prompt?_0
                                                                (let ((app_2
                                                                       (if (if unsafe-mode?_0
                                                                             unsafe-mode?_0
                                                                             (let ((or-part_0
                                                                                    (eq?
                                                                                     target_0
                                                                                     'system)))
                                                                               (if or-part_0
                                                                                 or-part_0
                                                                                 (if (pair?
                                                                                      ids_0)
                                                                                   (null?
                                                                                    (cdr
                                                                                     ids_0))
                                                                                   #f))))
                                                                         schemified_0
                                                                         (list
                                                                          'define-values
                                                                          ids_0
                                                                          (list
                                                                           'call-with-values
                                                                           (list
                                                                            'lambda
                                                                            '()
                                                                            rhs_0)
                                                                           (list
                                                                            'case-lambda
                                                                            (list
                                                                             ids_0
                                                                             (list*
                                                                              'values
                                                                              ids_0))
                                                                            (list
                                                                             'vals
                                                                             (list*
                                                                              'raise-definition-result-arity-error
                                                                              (list
                                                                               'quote
                                                                               ids_0)
                                                                              '(vals)))))))))
                                                                  (cons
                                                                   app_2
                                                                   (let ((app_3
                                                                          (cdr
                                                                           l_1)))
                                                                     (loop_0
                                                                      app_3
                                                                      mut-l_0
                                                                      null
                                                                      (reverse$1
                                                                       ids_0)
                                                                      knowns_1))))
                                                                (let ((app_2
                                                                       (list
                                                                        'lambda
                                                                        '()
                                                                        rhs_0)))
                                                                  (let ((expr_0
                                                                         (let ((app_3
                                                                                (list
                                                                                 'quote
                                                                                 ids_0)))
                                                                           (let ((app_4
                                                                                  (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_1
                                                                                                                    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
                                                                              app_2
                                                                              app_3
                                                                              app_4
                                                                              (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
                                                                                                               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_1
                                                                                                            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_3
                                                                             (if (eq?
                                                                                  target_0
                                                                                  'interp)
                                                                               expr_0
                                                                               (make-expr-defn
                                                                                expr_0))))
                                                                        (cons
                                                                         app_3
                                                                         (append
                                                                          defns_0
                                                                          (loop_0
                                                                           (cdr
                                                                            l_1)
                                                                           mut-l_0
                                                                           null
                                                                           null
                                                                           knowns_1))))))))))))))))
                                               (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)))
                                                                     (begin-unsafe
                                                                      (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
                                                           #f
                                                           1
                                                           rhs_0
                                                           prim-knowns_0
                                                           knowns_1
                                                           imports_0
                                                           mutated_0
                                                           simples_0
                                                           unsafe-mode?_0)
                                                        (let ((temp45_0
                                                               (list id_0)))
                                                          (finish-definition_0
                                                           unsafe-undefined
                                                           #f
                                                           unsafe-undefined
                                                           temp45_0
                                                           unsafe-undefined
                                                           unsafe-undefined))
                                                        (finish-wrapped-definition_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)))
                                                                       (begin-unsafe
                                                                        (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 ((temp54_0
                                                                   (length
                                                                    ids_0)))
                                                              (simple?.1
                                                               #f
                                                               #f
                                                               temp54_0
                                                               rhs_0
                                                               prim-knowns_0
                                                               knowns_1
                                                               imports_0
                                                               mutated_0
                                                               simples_0
                                                               unsafe-mode?_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
                                                                                                     #f
                                                                                                     #t
                                                                                                     1
                                                                                                     rhs_1
                                                                                                     prim-knowns_0
                                                                                                     knowns_1
                                                                                                     imports_0
                                                                                                     mutated_0
                                                                                                     simples_0
                                                                                                     unsafe-mode?_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)
                                                                  (letrec*
                                                                   ((values-loop_0
                                                                     (|#%name|
                                                                      values-loop
                                                                      (lambda (ids_1
                                                                               rhss_1
                                                                               accum-exprs_1
                                                                               accum-ids_1
                                                                               knowns_2)
                                                                        (begin
                                                                          (if (null?
                                                                               ids_1)
                                                                            (loop_0
                                                                             (cdr
                                                                              l_1)
                                                                             mut-l_0
                                                                             accum-exprs_1
                                                                             accum-ids_1
                                                                             knowns_2)
                                                                            (let ((id_0
                                                                                   (car
                                                                                    ids_1)))
                                                                              (let ((rhs_1
                                                                                     (car
                                                                                      rhss_1)))
                                                                                (let ((temp62_0
                                                                                       (list
                                                                                        id_0)))
                                                                                  (let ((temp66_0
                                                                                         (list
                                                                                          'define
                                                                                          id_0
                                                                                          rhs_1)))
                                                                                    (let ((temp67_0
                                                                                           (lambda (accum-exprs_2
                                                                                                    accum-ids_2
                                                                                                    knowns_3)
                                                                                             (let ((app_0
                                                                                                    (cdr
                                                                                                     ids_1)))
                                                                                               (values-loop_0
                                                                                                app_0
                                                                                                (cdr
                                                                                                 rhss_1)
                                                                                                accum-exprs_2
                                                                                                accum-ids_2
                                                                                                knowns_3)))))
                                                                                      (finish-definition_0
                                                                                       knowns_2
                                                                                       temp67_0
                                                                                       temp66_0
                                                                                       temp62_0
                                                                                       accum-exprs_1
                                                                                       accum-ids_1))))))))))))
                                                                   (values-loop_0
                                                                    ids_0
                                                                    rhss_0
                                                                    accum-exprs_0
                                                                    accum-ids_0
                                                                    knowns_1))
                                                                  (finish-definition_0
                                                                   unsafe-undefined
                                                                   #f
                                                                   unsafe-undefined
                                                                   ids_0
                                                                   unsafe-undefined
                                                                   unsafe-undefined)))
                                                              (finish-definition_0
                                                               unsafe-undefined
                                                               #f
                                                               unsafe-undefined
                                                               ids_0
                                                               unsafe-undefined
                                                               unsafe-undefined)))
                                                          (finish-wrapped-definition_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)))
                                                                       (begin-unsafe
                                                                        (let ((app_0
                                                                               (unwrap
                                                                                '())))
                                                                          (eq?
                                                                           app_0
                                                                           (unwrap
                                                                            a_1)))))
                                                                     #f)))
                                                               #f)
                                                           (let ((or-part_0
                                                                  (pair?
                                                                   (cdr l_1))))
                                                             (if or-part_0
                                                               or-part_0
                                                               (pair?
                                                                accum-ids_0)))
                                                           #f)
                                                       (loop_0
                                                        (cdr l_1)
                                                        mut-l_0
                                                        accum-exprs_0
                                                        accum-ids_0
                                                        knowns_1)
                                                       (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)))
                                                                             (begin-unsafe
                                                                              (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)))
                                                               (let ((temp71_0
                                                                      (append
                                                                       set-vars_0
                                                                       accum-exprs_0)))
                                                                 (finish-definition_0
                                                                  unsafe-undefined
                                                                  #f
                                                                  unsafe-undefined
                                                                  ids_0
                                                                  temp71_0
                                                                  null))))
                                                           (if (simple?.1
                                                                #f
                                                                #f
                                                                #f
                                                                schemified_0
                                                                prim-knowns_0
                                                                knowns_1
                                                                imports_0
                                                                mutated_0
                                                                simples_0
                                                                unsafe-mode?_0)
                                                             (let ((app_0
                                                                    (cdr l_1)))
                                                               (loop_0
                                                                app_0
                                                                mut-l_0
                                                                (cons
                                                                 schemified_0
                                                                 accum-exprs_0)
                                                                accum-ids_0
                                                                knowns_1))
                                                             (let ((set-vars_0
                                                                    (make-set-variables_0)))
                                                               (let ((expr_0
                                                                      (if no-prompt?_0
                                                                        schemified_0
                                                                        (list
                                                                         'call-with-module-prompt
                                                                         (list
                                                                          'lambda
                                                                          '()
                                                                          schemified_0)))))
                                                                 (let ((app_0
                                                                        (cdr
                                                                         l_1)))
                                                                   (loop_0
                                                                    app_0
                                                                    mut-l_0
                                                                    (cons
                                                                     expr_0
                                                                     (append
                                                                      set-vars_0
                                                                      accum-exprs_0))
                                                                    null
                                                                    knowns_1))))))))))))))))))))))))
                        (loop_0 l_0 l_0 null null knowns_0))))
                  (let ((app_0 (add-extra-variables_0 schemified_0)))
                    (values app_0 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
                        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 extra-variables_0)
    (if (null? ids_0)
      null
      (if (null? (cdr ids_0))
        (list
         (make-set-variable
          (car ids_0)
          exports_0
          knowns_0
          mutated_0
          extra-variables_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
                                                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))))))
          (list
           (list
            'set-consistent-variables!/define
            (list* 'vector ex-ids_0)
            (list* 'vector ids_0))))))))
(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)
    (let ((app_0 (deterministic-gensym "effect")))
      (list 'define app_0 (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
  (lambda (v_0
           prim-knowns_0
           primitives_0
           knowns_0
           mutated_0
           imports_0
           exports_0
           extra-variables_0
           simples_0
           allow-set!-undefined?_0
           add-import!_0
           serializable?-box_0
           datum-intern?_0
           target_0
           unsafe-mode?_0
           allow-inline?_0
           no-prompt?_0
           explicit-unnamed?_0
           wcm-state_0)
    (letrec*
     ((schemify/knowns_0
       (|#%name|
        schemify/knowns
        (lambda (knowns_1 inline-fuel_0 wcm-state_1 v_1)
          (begin
            (letrec*
             ((schemify_0
               (|#%name|
                schemify
                (lambda (v_2 wcm-state_2)
                  (begin
                    (let ((s-v_0
                           (reannotate
                            v_2
                            (let ((hd_0
                                   (let ((p_0 (unwrap v_2)))
                                     (if (pair? p_0) (unwrap (car p_0)) #f))))
                              (if (if (eq? 'lambda 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)))
                                            (wrap-list? a_1))
                                          #f)))
                                    #f)
                                (call-with-values
                                 (lambda ()
                                   (let ((d_0 (cdr (unwrap v_2))))
                                     (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_2
                                    (list*
                                     'lambda
                                     formals_0
                                     (schemify-body_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_2))))
                                        (if (wrap-list? a_0)
                                          (begin
                                            (letrec*
                                             ((for-loop_0
                                               (|#%name|
                                                for-loop
                                                (lambda (result_0 lst_0)
                                                  (begin
                                                    (if (not
                                                         (begin-unsafe
                                                          (null?
                                                           (unwrap lst_0))))
                                                      (let ((v_3
                                                             (if (begin-unsafe
                                                                  (pair?
                                                                   (unwrap
                                                                    lst_0)))
                                                               (wrap-car lst_0)
                                                               lst_0)))
                                                        (let ((rest_0
                                                               (if (begin-unsafe
                                                                    (pair?
                                                                     (unwrap
                                                                      lst_0)))
                                                                 (wrap-cdr
                                                                  lst_0)
                                                                 null)))
                                                          (let ((v_4 v_3))
                                                            (let ((result_1
                                                                   (let ((result_1
                                                                          (let ((p_0
                                                                                 (unwrap
                                                                                  v_4)))
                                                                            (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_4)))
                                                                         (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_2))))
                                       (call-with-values
                                        (lambda ()
                                          (begin
                                            (letrec*
                                             ((for-loop_0
                                               (|#%name|
                                                for-loop
                                                (lambda (formalss_0
                                                         bodys_0
                                                         lst_0)
                                                  (begin
                                                    (if (not
                                                         (begin-unsafe
                                                          (null?
                                                           (unwrap lst_0))))
                                                      (let ((v_3
                                                             (if (begin-unsafe
                                                                  (pair?
                                                                   (unwrap
                                                                    lst_0)))
                                                               (wrap-car lst_0)
                                                               lst_0)))
                                                        (let ((rest_0
                                                               (if (begin-unsafe
                                                                    (pair?
                                                                     (unwrap
                                                                      lst_0)))
                                                                 (wrap-cdr
                                                                  lst_0)
                                                                 null)))
                                                          (let ((v_4 v_3))
                                                            (call-with-values
                                                             (lambda ()
                                                               (call-with-values
                                                                (lambda ()
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (let ((p_0
                                                                            (unwrap
                                                                             v_4)))
                                                                       (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
                                                                    ((formalss82_0
                                                                      bodys83_0)
                                                                     (values
                                                                      (cons
                                                                       formalss82_0
                                                                       formalss_0)
                                                                      (cons
                                                                       bodys83_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_2
                                      (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
                                                                             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_2))))
                                              (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)))
                                                                          (begin-unsafe
                                                                           (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)))
                                                                                                                                    (begin-unsafe
                                                                                                                                     (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)))
                                                                                                          (begin-unsafe
                                                                                                           (let ((app_0
                                                                                                                  (unwrap
                                                                                                                   '())))
                                                                                                             (eq?
                                                                                                              app_0
                                                                                                              (unwrap
                                                                                                               a_7)))))
                                                                                                        #f)))
                                                                                                  #f)
                                                                                                #f)))
                                                                                        (let ((a_5
                                                                                               (cdr
                                                                                                p_4)))
                                                                                          (begin-unsafe
                                                                                           (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)))
                                                                                                    (begin-unsafe
                                                                                                     (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)))
                                                                                        (begin-unsafe
                                                                                         (let ((app_0
                                                                                                (unwrap
                                                                                                 '())))
                                                                                           (eq?
                                                                                            app_0
                                                                                            (unwrap
                                                                                             a_5)))))
                                                                                      #f)
                                                                                    #f)))
                                                                              #f)
                                                                            #f)))
                                                                      #f)
                                                                    #f)))
                                                            (let ((a_2
                                                                   (cdr p_1)))
                                                              (begin-unsafe
                                                               (let ((app_0
                                                                      (unwrap
                                                                       '())))
                                                                 (eq?
                                                                  app_0
                                                                  (unwrap
                                                                   a_2)))))
                                                            #f)
                                                          #f)))
                                                    #f)
                                                  #f)))
                                            #f)
                                        (not
                                         (let ((or-part_0
                                                (eq? target_0 'interp)))
                                           (if or-part_0
                                             or-part_0
                                             (eq? target_0 'cify))))
                                        #f)
                                    (call-with-values
                                     (lambda ()
                                       (let ((d_0 (cdr (unwrap v_2))))
                                         (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_2
                                               prim-knowns_0
                                               knowns_1
                                               imports_0
                                               exports_0
                                               mutated_0
                                               (lambda (v_3 knowns_2)
                                                 (schemify/knowns_0
                                                  knowns_2
                                                  inline-fuel_0
                                                  'fresh
                                                  v_3))
                                               target_0
                                               no-prompt?_0
                                               #t)))
                                         (if new-seq_0
                                           new-seq_0
                                           (if (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 ((p_2
                                                                  (unwrap
                                                                   a_1)))
                                                             (if (pair? p_2)
                                                               (let ((a_2
                                                                      (cdr
                                                                       p_2)))
                                                                 (begin-unsafe
                                                                  (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 ((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 rhs_0 'fresh)))
                                               (args
                                                (raise-binding-result-arity-error
                                                 2
                                                 args))))
                                             (error 'match "failed ~e" v_2)))))
                                      (args
                                       (raise-binding-result-arity-error
                                        14
                                        args))))
                                    (if (if (eq? 'define-values hd_0)
                                          (let ((a_0 (cdr (unwrap v_2))))
                                            (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)))
                                                            (begin-unsafe
                                                             (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)))
                                                          (begin-unsafe
                                                           (let ((app_0
                                                                  (unwrap
                                                                   '())))
                                                             (eq?
                                                              app_0
                                                              (unwrap a_2)))))
                                                        #f)))
                                                  #f)
                                                #f)))
                                          #f)
                                      (call-with-values
                                       (lambda ()
                                         (let ((d_0 (cdr (unwrap v_2))))
                                           (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 rhs_0 'fresh)))
                                        (args
                                         (raise-binding-result-arity-error
                                          2
                                          args))))
                                      (if (if (eq? 'define-values 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)))
                                                          (begin-unsafe
                                                           (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 ((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 rhs_0 'fresh)))
                                          (args
                                           (raise-binding-result-arity-error
                                            2
                                            args))))
                                        (if (if (eq? 'quote 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)))
                                                      (begin-unsafe
                                                       (let ((app_0
                                                              (unwrap '())))
                                                         (eq?
                                                          app_0
                                                          (unwrap a_1)))))
                                                    #f)))
                                              #f)
                                          (let ((q_0
                                                 (let ((d_0
                                                        (cdr (unwrap v_2))))
                                                   (let ((a_0
                                                          (car (unwrap d_0))))
                                                     a_0))))
                                            (begin
                                              (if serializable?-box_0
                                                (register-literal-serialization
                                                 q_0
                                                 serializable?-box_0
                                                 datum-intern?_0)
                                                (void))
                                              v_2))
                                          (if (if (eq? 'let-values hd_0)
                                                (let ((a_0 (cdr (unwrap v_2))))
                                                  (let ((p_0 (unwrap a_0)))
                                                    (if (pair? p_0)
                                                      (if (let ((a_1
                                                                 (car p_0)))
                                                            (begin-unsafe
                                                             (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)))
                                                                (begin-unsafe
                                                                 (let ((app_0
                                                                        (unwrap
                                                                         '())))
                                                                   (eq?
                                                                    app_0
                                                                    (unwrap
                                                                     a_2)))))
                                                              #f)))
                                                        #f)
                                                      #f)))
                                                #f)
                                            (let ((body_0
                                                   (let ((d_0
                                                          (cdr (unwrap v_2))))
                                                     (let ((d_1
                                                            (cdr
                                                             (unwrap d_0))))
                                                       (let ((a_0
                                                              (car
                                                               (unwrap d_1))))
                                                         a_0)))))
                                              (schemify_0 body_0 wcm-state_2))
                                            (if (if (eq? 'let-values hd_0)
                                                  (let ((a_0
                                                         (cdr (unwrap v_2))))
                                                    (let ((p_0 (unwrap a_0)))
                                                      (if (pair? p_0)
                                                        (if (let ((a_1
                                                                   (car p_0)))
                                                              (begin-unsafe
                                                               (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_2))))
                                                       (let ((d_1
                                                              (cdr
                                                               (unwrap d_0))))
                                                         (unwrap-list d_1)))))
                                                (schemify_0
                                                 (list* 'begin bodys_0)
                                                 wcm-state_2))
                                              (if (if (eq? 'let-values hd_0)
                                                    (let ((a_0
                                                           (cdr (unwrap v_2))))
                                                      (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
                                                                                 (begin-unsafe
                                                                                  (null?
                                                                                   (unwrap
                                                                                    lst_0))))
                                                                              (let ((v_3
                                                                                     (if (begin-unsafe
                                                                                          (pair?
                                                                                           (unwrap
                                                                                            lst_0)))
                                                                                       (wrap-car
                                                                                        lst_0)
                                                                                       lst_0)))
                                                                                (let ((rest_0
                                                                                       (if (begin-unsafe
                                                                                            (pair?
                                                                                             (unwrap
                                                                                              lst_0)))
                                                                                         (wrap-cdr
                                                                                          lst_0)
                                                                                         null)))
                                                                                  (let ((v_4
                                                                                         v_3))
                                                                                    (let ((result_1
                                                                                           (let ((result_1
                                                                                                  (let ((p_1
                                                                                                         (unwrap
                                                                                                          v_4)))
                                                                                                    (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)))
                                                                                                                  (begin-unsafe
                                                                                                                   (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)))
                                                                                                                (begin-unsafe
                                                                                                                 (let ((app_0
                                                                                                                        (unwrap
                                                                                                                         '())))
                                                                                                                   (eq?
                                                                                                                    app_0
                                                                                                                    (unwrap
                                                                                                                     a_3)))))
                                                                                                              #f)))
                                                                                                        #f)
                                                                                                      #f))))
                                                                                             (values
                                                                                              result_1))))
                                                                                      (if (if (not
                                                                                               (let ((x_0
                                                                                                      (list
                                                                                                       v_4)))
                                                                                                 (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_2))))
                                                     (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
                                                                              (begin-unsafe
                                                                               (null?
                                                                                (unwrap
                                                                                 lst_0))))
                                                                           (let ((v_3
                                                                                  (if (begin-unsafe
                                                                                       (pair?
                                                                                        (unwrap
                                                                                         lst_0)))
                                                                                    (wrap-car
                                                                                     lst_0)
                                                                                    lst_0)))
                                                                             (let ((rest_0
                                                                                    (if (begin-unsafe
                                                                                         (pair?
                                                                                          (unwrap
                                                                                           lst_0)))
                                                                                      (wrap-cdr
                                                                                       lst_0)
                                                                                      null)))
                                                                               (let ((v_4
                                                                                      v_3))
                                                                                 (call-with-values
                                                                                  (lambda ()
                                                                                    (call-with-values
                                                                                     (lambda ()
                                                                                       (call-with-values
                                                                                        (lambda ()
                                                                                          (let ((p_1
                                                                                                 (unwrap
                                                                                                  v_4)))
                                                                                            (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
                                                                                         ((ids84_0
                                                                                           rhss85_0)
                                                                                          (values
                                                                                           (cons
                                                                                            ids84_0
                                                                                            ids_0)
                                                                                           (cons
                                                                                            rhss85_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 ((temp86_0
                                                                        (car
                                                                         rhss_0)))
                                                                   (lambda?.1
                                                                    #f
                                                                    temp86_0))
                                                                 #f)
                                                               #f)
                                                             #f)
                                                           #f)
                                                         #f)
                                                     (schemify_0
                                                      (car rhss_0)
                                                      wcm-state_2)
                                                     (let ((new-knowns_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 ((rhs_0
                                                                                   (unsafe-car
                                                                                    lst_1)))
                                                                              (let ((rest_1
                                                                                     (unsafe-cdr
                                                                                      lst_1)))
                                                                                (let ((knowns_3
                                                                                       (let ((knowns_3
                                                                                              (let ((k_0
                                                                                                     (infer-known.1
                                                                                                      #f
                                                                                                      #f
                                                                                                      hash2610
                                                                                                      rhs_0
                                                                                                      #f
                                                                                                      id_0
                                                                                                      knowns_2
                                                                                                      prim-knowns_0
                                                                                                      imports_0
                                                                                                      mutated_0
                                                                                                      simples_0
                                                                                                      unsafe-mode?_0
                                                                                                      target_0)))
                                                                                                (if k_0
                                                                                                  (hash-set
                                                                                                   knowns_2
                                                                                                   (unwrap
                                                                                                    id_0)
                                                                                                   k_0)
                                                                                                  knowns_2))))
                                                                                         (values
                                                                                          knowns_3))))
                                                                                  (for-loop_0
                                                                                   knowns_3
                                                                                   rest_0
                                                                                   rest_1))))))
                                                                        knowns_2))))))
                                                               (for-loop_0
                                                                knowns_1
                                                                ids_0
                                                                rhss_0)))))
                                                       (let ((merely-a-copy?_0
                                                              (|#%name|
                                                               merely-a-copy?
                                                               (lambda (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))))))))
                                                         (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
                                                                                              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
                                                                                                    id_0)
                                                                                                 fold-var_0
                                                                                                 (let ((fold-var_1
                                                                                                        (cons
                                                                                                         (schemify_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
                                                                                                new-knowns_0
                                                                                                inline-fuel_0
                                                                                                wcm-state_2
                                                                                                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_1
                                                               imports_0
                                                               mutated_0
                                                               simples_0
                                                               unsafe-mode?_0)))
                                                          prim-knowns_0
                                                          knowns_1
                                                          imports_0
                                                          mutated_0
                                                          simples_0
                                                          unsafe-mode?_0)))))
                                                  (args
                                                   (raise-binding-result-arity-error
                                                    3
                                                    args))))
                                                (if (if (eq? 'let-values hd_0)
                                                      (let ((a_0
                                                             (cdr
                                                              (unwrap v_2))))
                                                        (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)))
                                                                                      (begin-unsafe
                                                                                       (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)))
                                                                                                        (begin-unsafe
                                                                                                         (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)))
                                                                                                                      (begin-unsafe
                                                                                                                       (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)))
                                                                                                                                        (begin-unsafe
                                                                                                                                         (let ((app_0
                                                                                                                                                (unwrap
                                                                                                                                                 'values)))
                                                                                                                                           (eq?
                                                                                                                                            app_0
                                                                                                                                            (unwrap
                                                                                                                                             a_9)))))
                                                                                                                                    (let ((a_9
                                                                                                                                           (cdr
                                                                                                                                            p_8)))
                                                                                                                                      (begin-unsafe
                                                                                                                                       (let ((app_0
                                                                                                                                              (unwrap
                                                                                                                                               '())))
                                                                                                                                         (eq?
                                                                                                                                          app_0
                                                                                                                                          (unwrap
                                                                                                                                           a_9)))))
                                                                                                                                    #f)
                                                                                                                                  #f)))
                                                                                                                          (let ((a_8
                                                                                                                                 (cdr
                                                                                                                                  p_7)))
                                                                                                                            (begin-unsafe
                                                                                                                             (let ((app_0
                                                                                                                                    (unwrap
                                                                                                                                     '())))
                                                                                                                               (eq?
                                                                                                                                app_0
                                                                                                                                (unwrap
                                                                                                                                 a_8)))))
                                                                                                                          #f)
                                                                                                                        #f)))
                                                                                                                  #f)
                                                                                                                #f)))
                                                                                                          #f)))
                                                                                                    #f)
                                                                                                  #f)))
                                                                                          (let ((a_4
                                                                                                 (cdr
                                                                                                  p_3)))
                                                                                            (begin-unsafe
                                                                                             (let ((app_0
                                                                                                    (unwrap
                                                                                                     '())))
                                                                                               (eq?
                                                                                                app_0
                                                                                                (unwrap
                                                                                                 a_4)))))
                                                                                          #f)
                                                                                        #f)))
                                                                                  #f)
                                                                                #f)))
                                                                        (let ((a_2
                                                                               (cdr
                                                                                p_1)))
                                                                          (begin-unsafe
                                                                           (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_2))))
                                                       (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
                                                              rhss_0
                                                              'fresh)))
                                                        (qq-append
                                                         app_0
                                                         (schemify-body_0
                                                          bodys_0
                                                          wcm-state_2)))))
                                                    (args
                                                     (raise-binding-result-arity-error
                                                      2
                                                      args))))
                                                  (if (if (eq?
                                                           'let-values
                                                           hd_0)
                                                        (let ((a_0
                                                               (cdr
                                                                (unwrap v_2))))
                                                          (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
                                                                                     (begin-unsafe
                                                                                      (null?
                                                                                       (unwrap
                                                                                        lst_0))))
                                                                                  (let ((v_3
                                                                                         (if (begin-unsafe
                                                                                              (pair?
                                                                                               (unwrap
                                                                                                lst_0)))
                                                                                           (wrap-car
                                                                                            lst_0)
                                                                                           lst_0)))
                                                                                    (let ((rest_0
                                                                                           (if (begin-unsafe
                                                                                                (pair?
                                                                                                 (unwrap
                                                                                                  lst_0)))
                                                                                             (wrap-cdr
                                                                                              lst_0)
                                                                                             null)))
                                                                                      (let ((v_4
                                                                                             v_3))
                                                                                        (let ((result_1
                                                                                               (let ((result_1
                                                                                                      (let ((p_1
                                                                                                             (unwrap
                                                                                                              v_4)))
                                                                                                        (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)))
                                                                                                                  (begin-unsafe
                                                                                                                   (let ((app_0
                                                                                                                          (unwrap
                                                                                                                           '())))
                                                                                                                     (eq?
                                                                                                                      app_0
                                                                                                                      (unwrap
                                                                                                                       a_3)))))
                                                                                                                #f)))
                                                                                                          #f))))
                                                                                                 (values
                                                                                                  result_1))))
                                                                                          (if (if (not
                                                                                                   (let ((x_0
                                                                                                          (list
                                                                                                           v_4)))
                                                                                                     (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_2))))
                                                         (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
                                                                                  (begin-unsafe
                                                                                   (null?
                                                                                    (unwrap
                                                                                     lst_0))))
                                                                               (let ((v_3
                                                                                      (if (begin-unsafe
                                                                                           (pair?
                                                                                            (unwrap
                                                                                             lst_0)))
                                                                                        (wrap-car
                                                                                         lst_0)
                                                                                        lst_0)))
                                                                                 (let ((rest_0
                                                                                        (if (begin-unsafe
                                                                                             (pair?
                                                                                              (unwrap
                                                                                               lst_0)))
                                                                                          (wrap-cdr
                                                                                           lst_0)
                                                                                          null)))
                                                                                   (let ((v_4
                                                                                          v_3))
                                                                                     (call-with-values
                                                                                      (lambda ()
                                                                                        (call-with-values
                                                                                         (lambda ()
                                                                                           (call-with-values
                                                                                            (lambda ()
                                                                                              (let ((p_1
                                                                                                     (unwrap
                                                                                                      v_4)))
                                                                                                (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
                                                                                             ((idss97_0
                                                                                               rhss98_0)
                                                                                              (values
                                                                                               (cons
                                                                                                idss97_0
                                                                                                idss_0)
                                                                                               (cons
                                                                                                rhss98_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
                                                                   (let ((or-part_0
                                                                          (eq?
                                                                           target_0
                                                                           'interp)))
                                                                     (if or-part_0
                                                                       or-part_0
                                                                       (eq?
                                                                        target_0
                                                                        'cify))))
                                                                (let ((temp105_0
                                                                       (lambda (v_3
                                                                                knowns_2)
                                                                         (schemify/knowns_0
                                                                          knowns_2
                                                                          inline-fuel_0
                                                                          'fresh
                                                                          v_3))))
                                                                  (struct-convert-local.1
                                                                   #f
                                                                   target_0
                                                                   unsafe-mode?_0
                                                                   v_2
                                                                   prim-knowns_0
                                                                   knowns_1
                                                                   imports_0
                                                                   mutated_0
                                                                   simples_0
                                                                   temp105_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
                                                                                                    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
                                                                bodys_0
                                                                wcm-state_2)
                                                               mutated_0
                                                               target_0))
                                                            prim-knowns_0
                                                            knowns_1
                                                            imports_0
                                                            mutated_0
                                                            simples_0
                                                            unsafe-mode?_0))))
                                                      (args
                                                       (raise-binding-result-arity-error
                                                        3
                                                        args))))
                                                    (if (if (eq?
                                                             'letrec-values
                                                             hd_0)
                                                          (let ((a_0
                                                                 (cdr
                                                                  (unwrap
                                                                   v_2))))
                                                            (let ((p_0
                                                                   (unwrap
                                                                    a_0)))
                                                              (if (pair? p_0)
                                                                (if (let ((a_1
                                                                           (car
                                                                            p_0)))
                                                                      (begin-unsafe
                                                                       (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_2))))
                                                               (let ((d_1
                                                                      (cdr
                                                                       (unwrap
                                                                        d_0))))
                                                                 (unwrap-list
                                                                  d_1)))))
                                                        (schemify_0
                                                         (list* 'begin bodys_0)
                                                         wcm-state_2))
                                                      (if (if (eq?
                                                               'letrec-values
                                                               hd_0)
                                                            (let ((a_0
                                                                   (cdr
                                                                    (unwrap
                                                                     v_2))))
                                                              (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)))
                                                                                            (begin-unsafe
                                                                                             (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)))
                                                                                                              (begin-unsafe
                                                                                                               (let ((app_0
                                                                                                                      (unwrap
                                                                                                                       'values)))
                                                                                                                 (eq?
                                                                                                                  app_0
                                                                                                                  (unwrap
                                                                                                                   a_5)))))
                                                                                                          (let ((a_5
                                                                                                                 (cdr
                                                                                                                  p_4)))
                                                                                                            (begin-unsafe
                                                                                                             (let ((app_0
                                                                                                                    (unwrap
                                                                                                                     '())))
                                                                                                               (eq?
                                                                                                                app_0
                                                                                                                (unwrap
                                                                                                                 a_5)))))
                                                                                                          #f)
                                                                                                        #f)))
                                                                                                (let ((a_4
                                                                                                       (cdr
                                                                                                        p_3)))
                                                                                                  (begin-unsafe
                                                                                                   (let ((app_0
                                                                                                          (unwrap
                                                                                                           '())))
                                                                                                     (eq?
                                                                                                      app_0
                                                                                                      (unwrap
                                                                                                       a_4)))))
                                                                                                #f)
                                                                                              #f)))
                                                                                        #f)
                                                                                      #f)))
                                                                              (let ((a_2
                                                                                     (cdr
                                                                                      p_1)))
                                                                                (begin-unsafe
                                                                                 (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_2))))
                                                                 (let ((d_1
                                                                        (cdr
                                                                         (unwrap
                                                                          d_0))))
                                                                   (unwrap-list
                                                                    d_1)))))
                                                          (schemify_0
                                                           (list*
                                                            'begin
                                                            bodys_0)
                                                           wcm-state_2))
                                                        (if (if (eq?
                                                                 'letrec-values
                                                                 hd_0)
                                                              (let ((a_0
                                                                     (cdr
                                                                      (unwrap
                                                                       v_2))))
                                                                (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)))
                                                                                                    (begin-unsafe
                                                                                                     (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)))
                                                                                                                (begin-unsafe
                                                                                                                 (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)))
                                                                                                                    (begin-unsafe
                                                                                                                     (let ((app_0
                                                                                                                            (unwrap
                                                                                                                             '())))
                                                                                                                       (eq?
                                                                                                                        app_0
                                                                                                                        (unwrap
                                                                                                                         a_6)))))
                                                                                                                  #f)))
                                                                                                            #f)
                                                                                                          #f)))
                                                                                                  (let ((a_4
                                                                                                         (cdr
                                                                                                          p_3)))
                                                                                                    (begin-unsafe
                                                                                                     (let ((app_0
                                                                                                            (unwrap
                                                                                                             '())))
                                                                                                       (eq?
                                                                                                        app_0
                                                                                                        (unwrap
                                                                                                         a_4)))))
                                                                                                  #f)
                                                                                                #f)))
                                                                                          #f)
                                                                                        #f)))
                                                                                (let ((a_2
                                                                                       (cdr
                                                                                        p_1)))
                                                                                  (begin-unsafe
                                                                                   (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_2))))
                                                               (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
                                                              (list*
                                                               'letrec-values
                                                               (list
                                                                (list
                                                                 (list id_0)
                                                                 rhs_0))
                                                               bodys_0)
                                                              wcm-state_2))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              3
                                                              args))))
                                                          (if (if (eq?
                                                                   'letrec-values
                                                                   hd_0)
                                                                (let ((a_0
                                                                       (cdr
                                                                        (unwrap
                                                                         v_2))))
                                                                  (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
                                                                                             (begin-unsafe
                                                                                              (null?
                                                                                               (unwrap
                                                                                                lst_0))))
                                                                                          (let ((v_3
                                                                                                 (if (begin-unsafe
                                                                                                      (pair?
                                                                                                       (unwrap
                                                                                                        lst_0)))
                                                                                                   (wrap-car
                                                                                                    lst_0)
                                                                                                   lst_0)))
                                                                                            (let ((rest_0
                                                                                                   (if (begin-unsafe
                                                                                                        (pair?
                                                                                                         (unwrap
                                                                                                          lst_0)))
                                                                                                     (wrap-cdr
                                                                                                      lst_0)
                                                                                                     null)))
                                                                                              (let ((v_4
                                                                                                     v_3))
                                                                                                (let ((result_1
                                                                                                       (let ((result_1
                                                                                                              (let ((p_1
                                                                                                                     (unwrap
                                                                                                                      v_4)))
                                                                                                                (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)))
                                                                                                                              (begin-unsafe
                                                                                                                               (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)))
                                                                                                                            (begin-unsafe
                                                                                                                             (let ((app_0
                                                                                                                                    (unwrap
                                                                                                                                     '())))
                                                                                                                               (eq?
                                                                                                                                app_0
                                                                                                                                (unwrap
                                                                                                                                 a_3)))))
                                                                                                                          #f)))
                                                                                                                    #f)
                                                                                                                  #f))))
                                                                                                         (values
                                                                                                          result_1))))
                                                                                                  (if (if (not
                                                                                                           (let ((x_0
                                                                                                                  (list
                                                                                                                   v_4)))
                                                                                                             (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_2))))
                                                                 (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
                                                                                          (begin-unsafe
                                                                                           (null?
                                                                                            (unwrap
                                                                                             lst_0))))
                                                                                       (let ((v_3
                                                                                              (if (begin-unsafe
                                                                                                   (pair?
                                                                                                    (unwrap
                                                                                                     lst_0)))
                                                                                                (wrap-car
                                                                                                 lst_0)
                                                                                                lst_0)))
                                                                                         (let ((rest_0
                                                                                                (if (begin-unsafe
                                                                                                     (pair?
                                                                                                      (unwrap
                                                                                                       lst_0)))
                                                                                                  (wrap-cdr
                                                                                                   lst_0)
                                                                                                  null)))
                                                                                           (let ((v_4
                                                                                                  v_3))
                                                                                             (call-with-values
                                                                                              (lambda ()
                                                                                                (call-with-values
                                                                                                 (lambda ()
                                                                                                   (call-with-values
                                                                                                    (lambda ()
                                                                                                      (let ((p_1
                                                                                                             (unwrap
                                                                                                              v_4)))
                                                                                                        (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
                                                                                                     ((ids108_0
                                                                                                       rhss109_0)
                                                                                                      (values
                                                                                                       (cons
                                                                                                        ids108_0
                                                                                                        ids_0)
                                                                                                       (cons
                                                                                                        rhss109_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_1
                                                                                                    prim-knowns_0
                                                                                                    imports_0
                                                                                                    mutated_0
                                                                                                    simples_0
                                                                                                    unsafe-mode?_0
                                                                                                    target_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_1
                                                                                                    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_1
                                                                      knowns_1
                                                                      ids_0
                                                                      rhss_0))))
                                                                (case-lambda
                                                                 ((rhs-knowns_0
                                                                   body-knowns_0)
                                                                  (unnest-let
                                                                   (letrec-conversion
                                                                    ids_0
                                                                    mutated_0
                                                                    target_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
                                                                                                                 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
                                                                                                        body-knowns_0
                                                                                                        inline-fuel_0
                                                                                                        wcm-state_2
                                                                                                        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_1
                                                                   imports_0
                                                                   mutated_0
                                                                   simples_0
                                                                   unsafe-mode?_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_2))))
                                                                    (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
                                                                                               (begin-unsafe
                                                                                                (null?
                                                                                                 (unwrap
                                                                                                  lst_0))))
                                                                                            (let ((v_3
                                                                                                   (if (begin-unsafe
                                                                                                        (pair?
                                                                                                         (unwrap
                                                                                                          lst_0)))
                                                                                                     (wrap-car
                                                                                                      lst_0)
                                                                                                     lst_0)))
                                                                                              (let ((rest_0
                                                                                                     (if (begin-unsafe
                                                                                                          (pair?
                                                                                                           (unwrap
                                                                                                            lst_0)))
                                                                                                       (wrap-cdr
                                                                                                        lst_0)
                                                                                                       null)))
                                                                                                (let ((v_4
                                                                                                       v_3))
                                                                                                  (let ((result_1
                                                                                                         (let ((result_1
                                                                                                                (let ((p_1
                                                                                                                       (unwrap
                                                                                                                        v_4)))
                                                                                                                  (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)))
                                                                                                                            (begin-unsafe
                                                                                                                             (let ((app_0
                                                                                                                                    (unwrap
                                                                                                                                     '())))
                                                                                                                               (eq?
                                                                                                                                app_0
                                                                                                                                (unwrap
                                                                                                                                 a_3)))))
                                                                                                                          #f)))
                                                                                                                    #f))))
                                                                                                           (values
                                                                                                            result_1))))
                                                                                                    (if (if (not
                                                                                                             (let ((x_0
                                                                                                                    (list
                                                                                                                     v_4)))
                                                                                                               (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_2))))
                                                                   (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
                                                                                            (begin-unsafe
                                                                                             (null?
                                                                                              (unwrap
                                                                                               lst_0))))
                                                                                         (let ((v_3
                                                                                                (if (begin-unsafe
                                                                                                     (pair?
                                                                                                      (unwrap
                                                                                                       lst_0)))
                                                                                                  (wrap-car
                                                                                                   lst_0)
                                                                                                  lst_0)))
                                                                                           (let ((rest_0
                                                                                                  (if (begin-unsafe
                                                                                                       (pair?
                                                                                                        (unwrap
                                                                                                         lst_0)))
                                                                                                    (wrap-cdr
                                                                                                     lst_0)
                                                                                                    null)))
                                                                                             (let ((v_4
                                                                                                    v_3))
                                                                                               (call-with-values
                                                                                                (lambda ()
                                                                                                  (call-with-values
                                                                                                   (lambda ()
                                                                                                     (call-with-values
                                                                                                      (lambda ()
                                                                                                        (let ((p_1
                                                                                                               (unwrap
                                                                                                                v_4)))
                                                                                                          (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
                                                                                                       ((idss120_0
                                                                                                         rhss121_0)
                                                                                                        (values
                                                                                                         (cons
                                                                                                          idss120_0
                                                                                                          idss_0)
                                                                                                         (cons
                                                                                                          rhss121_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 ((temp129_0
                                                                        (lambda (v_3
                                                                                 knowns_2)
                                                                          (schemify/knowns_0
                                                                           knowns_2
                                                                           inline-fuel_0
                                                                           'fresh
                                                                           v_3))))
                                                                   (let ((c1_0
                                                                          (struct-convert-local.1
                                                                           #t
                                                                           target_0
                                                                           unsafe-mode?_0
                                                                           v_2
                                                                           prim-knowns_0
                                                                           knowns_1
                                                                           imports_0
                                                                           mutated_0
                                                                           simples_0
                                                                           temp129_0)))
                                                                     (if c1_0
                                                                       c1_0
                                                                       (if (letrec-splitable-values-binding?
                                                                            idss_0
                                                                            rhss_0)
                                                                         (schemify_0
                                                                          (letrec-split-values-binding
                                                                           idss_0
                                                                           rhss_0
                                                                           bodys_0)
                                                                          wcm-state_2)
                                                                         (letrec-conversion
                                                                          idss_0
                                                                          mutated_0
                                                                          target_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
                                                                                                                              rhs_0
                                                                                                                              'fresh)))
                                                                                                                        (if (null?
                                                                                                                             ids_0)
                                                                                                                          (list
                                                                                                                           (let ((app_0
                                                                                                                                  (deterministic-gensym
                                                                                                                                   "lr")))
                                                                                                                             (list
                                                                                                                              app_0
                                                                                                                              (make-let-values
                                                                                                                               null
                                                                                                                               rhs_1
                                                                                                                               '(void)
                                                                                                                               target_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)
                                                                                                                                       target_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
                                                                              bodys_0
                                                                              wcm-state_2)))))))))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  3
                                                                  args))))
                                                              (if (if (eq?
                                                                       'if
                                                                       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 ((p_2
                                                                                         (unwrap
                                                                                          a_2)))
                                                                                    (if (pair?
                                                                                         p_2)
                                                                                      (let ((a_3
                                                                                             (cdr
                                                                                              p_2)))
                                                                                        (begin-unsafe
                                                                                         (let ((app_0
                                                                                                (unwrap
                                                                                                 '())))
                                                                                           (eq?
                                                                                            app_0
                                                                                            (unwrap
                                                                                             a_3)))))
                                                                                      #f)))
                                                                                #f)))
                                                                          #f)))
                                                                    #f)
                                                                (call-with-values
                                                                 (lambda ()
                                                                   (let ((d_0
                                                                          (cdr
                                                                           (unwrap
                                                                            v_2))))
                                                                     (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
                                                                           tst_0
                                                                           'fresh)))
                                                                     (let ((app_1
                                                                            (schemify_0
                                                                             thn_0
                                                                             wcm-state_2)))
                                                                       (list
                                                                        'if
                                                                        app_0
                                                                        app_1
                                                                        (schemify_0
                                                                         els_0
                                                                         wcm-state_2)))))
                                                                  (args
                                                                   (raise-binding-result-arity-error
                                                                    3
                                                                    args))))
                                                                (if (if (eq?
                                                                         'with-continuation-mark
                                                                         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 ((p_2
                                                                                           (unwrap
                                                                                            a_2)))
                                                                                      (if (pair?
                                                                                           p_2)
                                                                                        (let ((a_3
                                                                                               (cdr
                                                                                                p_2)))
                                                                                          (begin-unsafe
                                                                                           (let ((app_0
                                                                                                  (unwrap
                                                                                                   '())))
                                                                                             (eq?
                                                                                              app_0
                                                                                              (unwrap
                                                                                               a_3)))))
                                                                                        #f)))
                                                                                  #f)))
                                                                            #f)))
                                                                      #f)
                                                                  (call-with-values
                                                                   (lambda ()
                                                                     (let ((d_0
                                                                            (cdr
                                                                             (unwrap
                                                                              v_2))))
                                                                       (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
                                                                             key_0
                                                                             'fresh)))
                                                                       (let ((s-val_0
                                                                              (schemify_0
                                                                               val_0
                                                                               'fresh)))
                                                                         (let ((s-body_0
                                                                                (schemify_0
                                                                                 body_0
                                                                                 'marked)))
                                                                           (let ((authentic-key?_0
                                                                                  (authentic-valued?
                                                                                   key_0
                                                                                   knowns_1
                                                                                   prim-knowns_0
                                                                                   imports_0
                                                                                   mutated_0)))
                                                                             (let ((build-wcm_0
                                                                                    (|#%name|
                                                                                     build-wcm
                                                                                     (lambda (s-key_1
                                                                                              s-val_1
                                                                                              s-body_1)
                                                                                       (begin
                                                                                         (if (eq?
                                                                                              target_0
                                                                                              'cify)
                                                                                           (list
                                                                                            'with-continuation-mark
                                                                                            s-key_1
                                                                                            s-val_1
                                                                                            s-body_1)
                                                                                           (let ((mode_0
                                                                                                  (if (eq?
                                                                                                       wcm-state_2
                                                                                                       'fresh)
                                                                                                    (if authentic-key?_0
                                                                                                      'push-authentic
                                                                                                      'push)
                                                                                                    (if authentic-key?_0
                                                                                                      'authentic
                                                                                                      'general))))
                                                                                             (list
                                                                                              'with-continuation-mark*
                                                                                              mode_0
                                                                                              s-key_1
                                                                                              s-val_1
                                                                                              s-body_1))))))))
                                                                               (let ((build-begin_0
                                                                                      (|#%name|
                                                                                       build-begin
                                                                                       (lambda (s-key_1
                                                                                                s-val_1
                                                                                                s-body_1)
                                                                                         (begin
                                                                                           (if (if (simple?.1
                                                                                                    #f
                                                                                                    #t
                                                                                                    1
                                                                                                    s-key_1
                                                                                                    prim-knowns_0
                                                                                                    knowns_1
                                                                                                    imports_0
                                                                                                    mutated_0
                                                                                                    simples_0
                                                                                                    unsafe-mode?_0)
                                                                                                 (simple?.1
                                                                                                  #f
                                                                                                  #t
                                                                                                  1
                                                                                                  s-val_1
                                                                                                  prim-knowns_0
                                                                                                  knowns_1
                                                                                                  imports_0
                                                                                                  mutated_0
                                                                                                  simples_0
                                                                                                  unsafe-mode?_0)
                                                                                                 #f)
                                                                                             s-body_1
                                                                                             (let ((app_0
                                                                                                    (ensure-single-valued
                                                                                                     s-key_1
                                                                                                     knowns_1
                                                                                                     prim-knowns_0
                                                                                                     imports_0
                                                                                                     mutated_0)))
                                                                                               (list
                                                                                                'begin
                                                                                                app_0
                                                                                                (ensure-single-valued
                                                                                                 s-val_1
                                                                                                 knowns_1
                                                                                                 prim-knowns_0
                                                                                                 imports_0
                                                                                                 mutated_0)
                                                                                                s-body_1))))))))
                                                                                 (if authentic-key?_0
                                                                                   (if (simple?.1
                                                                                        #f
                                                                                        #t
                                                                                        #f
                                                                                        s-body_0
                                                                                        prim-knowns_0
                                                                                        knowns_1
                                                                                        imports_0
                                                                                        mutated_0
                                                                                        simples_0
                                                                                        unsafe-mode?_0)
                                                                                     (build-begin_0
                                                                                      s-key_0
                                                                                      s-val_0
                                                                                      s-body_0)
                                                                                     (let ((hd_1
                                                                                            (let ((p_0
                                                                                                   (unwrap
                                                                                                    s-body_0)))
                                                                                              (if (pair?
                                                                                                   p_0)
                                                                                                (unwrap
                                                                                                 (car
                                                                                                  p_0))
                                                                                                #f))))
                                                                                       (if (if (eq?
                                                                                                'with-continuation-mark*
                                                                                                hd_1)
                                                                                             (let ((a_0
                                                                                                    (cdr
                                                                                                     (unwrap
                                                                                                      s-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 ((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)))
                                                                                                                       (begin-unsafe
                                                                                                                        (let ((app_0
                                                                                                                               (unwrap
                                                                                                                                '())))
                                                                                                                          (eq?
                                                                                                                           app_0
                                                                                                                           (unwrap
                                                                                                                            a_4)))))
                                                                                                                     #f)))
                                                                                                               #f)))
                                                                                                         #f)))
                                                                                                   #f)))
                                                                                             #f)
                                                                                         (call-with-values
                                                                                          (lambda ()
                                                                                            (let ((d_0
                                                                                                   (cdr
                                                                                                    (unwrap
                                                                                                     s-body_0))))
                                                                                              (let ((p_0
                                                                                                     (unwrap
                                                                                                      d_0)))
                                                                                                (let ((mode2_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 ((s-key2_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 ((s-val2_0
                                                                                                                         (let ((a_0
                                                                                                                                (car
                                                                                                                                 p_2)))
                                                                                                                           a_0)))
                                                                                                                    (let ((s-body2_0
                                                                                                                           (let ((d_3
                                                                                                                                  (cdr
                                                                                                                                   p_2)))
                                                                                                                             (let ((a_0
                                                                                                                                    (car
                                                                                                                                     (unwrap
                                                                                                                                      d_3))))
                                                                                                                               a_0))))
                                                                                                                      (let ((s-val2_1
                                                                                                                             s-val2_0))
                                                                                                                        (values
                                                                                                                         s-val2_1
                                                                                                                         s-body2_0)))))))
                                                                                                            (case-lambda
                                                                                                             ((s-val2_0
                                                                                                               s-body2_0)
                                                                                                              (let ((s-key2_1
                                                                                                                     s-key2_0))
                                                                                                                (values
                                                                                                                 s-key2_1
                                                                                                                 s-val2_0
                                                                                                                 s-body2_0)))
                                                                                                             (args
                                                                                                              (raise-binding-result-arity-error
                                                                                                               2
                                                                                                               args))))))))
                                                                                                   (case-lambda
                                                                                                    ((s-key2_0
                                                                                                      s-val2_0
                                                                                                      s-body2_0)
                                                                                                     (let ((mode2_1
                                                                                                            mode2_0))
                                                                                                       (values
                                                                                                        mode2_1
                                                                                                        s-key2_0
                                                                                                        s-val2_0
                                                                                                        s-body2_0)))
                                                                                                    (args
                                                                                                     (raise-binding-result-arity-error
                                                                                                      3
                                                                                                      args))))))))
                                                                                          (case-lambda
                                                                                           ((mode2_0
                                                                                             s-key2_0
                                                                                             s-val2_0
                                                                                             s-body2_0)
                                                                                            (if (if (always-eq/no-marks?
                                                                                                     s-key_0
                                                                                                     s-key2_0
                                                                                                     mutated_0)
                                                                                                  (simple?.1
                                                                                                   #f
                                                                                                   #t
                                                                                                   1
                                                                                                   s-val2_0
                                                                                                   prim-knowns_0
                                                                                                   knowns_1
                                                                                                   imports_0
                                                                                                   mutated_0
                                                                                                   simples_0
                                                                                                   unsafe-mode?_0)
                                                                                                  #f)
                                                                                              (build-begin_0
                                                                                               s-key_0
                                                                                               s-val_0
                                                                                               (build-wcm_0
                                                                                                s-key2_0
                                                                                                s-val2_0
                                                                                                s-body2_0))
                                                                                              (build-wcm_0
                                                                                               s-key_0
                                                                                               s-val_0
                                                                                               s-body_0)))
                                                                                           (args
                                                                                            (raise-binding-result-arity-error
                                                                                             4
                                                                                             args))))
                                                                                         (build-wcm_0
                                                                                          s-key_0
                                                                                          s-val_0
                                                                                          s-body_0))))
                                                                                   (build-wcm_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_2))))
                                                                          (let ((p_0
                                                                                 (unwrap
                                                                                  a_0)))
                                                                            (if (pair?
                                                                                 p_0)
                                                                              (let ((a_1
                                                                                     (cdr
                                                                                      p_0)))
                                                                                (begin-unsafe
                                                                                 (let ((app_0
                                                                                        (unwrap
                                                                                         '())))
                                                                                   (eq?
                                                                                    app_0
                                                                                    (unwrap
                                                                                     a_1)))))
                                                                              #f)))
                                                                        #f)
                                                                    (let ((exp_0
                                                                           (let ((d_0
                                                                                  (cdr
                                                                                   (unwrap
                                                                                    v_2))))
                                                                             (let ((a_0
                                                                                    (car
                                                                                     (unwrap
                                                                                      d_0))))
                                                                               a_0))))
                                                                      (schemify_0
                                                                       exp_0
                                                                       wcm-state_2))
                                                                    (if (if (eq?
                                                                             'begin
                                                                             hd_0)
                                                                          (let ((a_0
                                                                                 (cdr
                                                                                  (unwrap
                                                                                   v_2))))
                                                                            (wrap-list?
                                                                             a_0))
                                                                          #f)
                                                                      (let ((exps_0
                                                                             (let ((d_0
                                                                                    (cdr
                                                                                     (unwrap
                                                                                      v_2))))
                                                                               (unwrap-list
                                                                                d_0))))
                                                                        (list*
                                                                         'begin
                                                                         (schemify-body_0
                                                                          exps_0
                                                                          wcm-state_2)))
                                                                      (if (if (eq?
                                                                               'begin-unsafe
                                                                               hd_0)
                                                                            (let ((a_0
                                                                                   (cdr
                                                                                    (unwrap
                                                                                     v_2))))
                                                                              (wrap-list?
                                                                               a_0))
                                                                            #f)
                                                                        (let ((exps_0
                                                                               (let ((d_0
                                                                                      (cdr
                                                                                       (unwrap
                                                                                        v_2))))
                                                                                 (unwrap-list
                                                                                  d_0))))
                                                                          (list*
                                                                           'begin-unsafe
                                                                           (schemify-body_0
                                                                            exps_0
                                                                            wcm-state_2)))
                                                                        (if (if (eq?
                                                                                 'begin0
                                                                                 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)))
                                                                                      (begin-unsafe
                                                                                       (let ((app_0
                                                                                              (unwrap
                                                                                               '())))
                                                                                         (eq?
                                                                                          app_0
                                                                                          (unwrap
                                                                                           a_1)))))
                                                                                    #f)))
                                                                              #f)
                                                                          (let ((exp_0
                                                                                 (let ((d_0
                                                                                        (cdr
                                                                                         (unwrap
                                                                                          v_2))))
                                                                                   (let ((a_0
                                                                                          (car
                                                                                           (unwrap
                                                                                            d_0))))
                                                                                     a_0))))
                                                                            (schemify_0
                                                                             exp_0
                                                                             wcm-state_2))
                                                                          (if (if (eq?
                                                                                   'begin0
                                                                                   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)))
                                                                                        (wrap-list?
                                                                                         a_1))
                                                                                      #f)))
                                                                                #f)
                                                                            (call-with-values
                                                                             (lambda ()
                                                                               (let ((d_0
                                                                                      (cdr
                                                                                       (unwrap
                                                                                        v_2))))
                                                                                 (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
                                                                                       exp_0
                                                                                       'fresh)))
                                                                                 (list*
                                                                                  'begin0
                                                                                  app_0
                                                                                  (schemify-body_0
                                                                                   exps_0
                                                                                   'fresh))))
                                                                              (args
                                                                               (raise-binding-result-arity-error
                                                                                2
                                                                                args))))
                                                                            (if (if (eq?
                                                                                     'set!
                                                                                     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)))
                                                                                                (begin-unsafe
                                                                                                 (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 ((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
                                                                                          (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
                                                                                               #f)))))
                                                                                     (let ((new-rhs_0
                                                                                            (schemify_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
                                                                                                  (eq?
                                                                                                   target_0
                                                                                                   'cify))
                                                                                                 #f)
                                                                                             (let ((tmp_0
                                                                                                    (deterministic-gensym
                                                                                                     "set")))
                                                                                               (let ((app_0
                                                                                                      (list
                                                                                                       (list
                                                                                                        tmp_0
                                                                                                        new-rhs_0))))
                                                                                                 (let ((app_1
                                                                                                        (list
                                                                                                         'check-not-unsafe-undefined/assign
                                                                                                         id_0
                                                                                                         (list
                                                                                                          'quote
                                                                                                          (too-early-mutated-state-name
                                                                                                           state_0
                                                                                                           int-id_0)))))
                                                                                                   (list
                                                                                                    'let
                                                                                                    app_0
                                                                                                    app_1
                                                                                                    (list
                                                                                                     'set!
                                                                                                     id_0
                                                                                                     tmp_0)))))
                                                                                             (if (not
                                                                                                  state_0)
                                                                                               (list
                                                                                                'void
                                                                                                new-rhs_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_2))))
                                                                                      (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)))
                                                                                                          (begin-unsafe
                                                                                                           (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)))
                                                                                                              (begin-unsafe
                                                                                                               (let ((app_0
                                                                                                                      (unwrap
                                                                                                                       '())))
                                                                                                                 (eq?
                                                                                                                  app_0
                                                                                                                  (unwrap
                                                                                                                   a_3)))))
                                                                                                            #f)))
                                                                                                      #f)
                                                                                                    #f)))
                                                                                            (let ((a_1
                                                                                                   (cdr
                                                                                                    p_0)))
                                                                                              (begin-unsafe
                                                                                               (let ((app_0
                                                                                                      (unwrap
                                                                                                       '())))
                                                                                                 (eq?
                                                                                                  app_0
                                                                                                  (unwrap
                                                                                                   a_1)))))
                                                                                            #f)
                                                                                          #f)))
                                                                                    #f)
                                                                                (let ((id_0
                                                                                       (let ((d_0
                                                                                              (cdr
                                                                                               (unwrap
                                                                                                v_2))))
                                                                                         (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
                                                                                              (list
                                                                                               '|#%variable-reference|
                                                                                               id_0)
                                                                                              'fresh))))))))
                                                                                (if (if (eq?
                                                                                         'variable-reference-from-unsafe?
                                                                                         hd_0)
                                                                                      (let ((a_0
                                                                                             (cdr
                                                                                              (unwrap
                                                                                               v_2))))
                                                                                        (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)))
                                                                                                            (begin-unsafe
                                                                                                             (let ((app_0
                                                                                                                    (unwrap
                                                                                                                     '|#%variable-reference|)))
                                                                                                               (eq?
                                                                                                                app_0
                                                                                                                (unwrap
                                                                                                                 a_2)))))
                                                                                                        (let ((a_2
                                                                                                               (cdr
                                                                                                                p_1)))
                                                                                                          (begin-unsafe
                                                                                                           (let ((app_0
                                                                                                                  (unwrap
                                                                                                                   '())))
                                                                                                             (eq?
                                                                                                              app_0
                                                                                                              (unwrap
                                                                                                               a_2)))))
                                                                                                        #f)
                                                                                                      #f)))
                                                                                              (let ((a_1
                                                                                                     (cdr
                                                                                                      p_0)))
                                                                                                (begin-unsafe
                                                                                                 (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_2))))
                                                                                          (begin-unsafe
                                                                                           (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_2))))
                                                                                            (let ((p_0
                                                                                                   (unwrap
                                                                                                    a_0)))
                                                                                              (if (pair?
                                                                                                   p_0)
                                                                                                (let ((a_1
                                                                                                       (cdr
                                                                                                        p_0)))
                                                                                                  (begin-unsafe
                                                                                                   (let ((app_0
                                                                                                          (unwrap
                                                                                                           '())))
                                                                                                     (eq?
                                                                                                      app_0
                                                                                                      (unwrap
                                                                                                       a_1)))))
                                                                                                #f)))
                                                                                          #f)
                                                                                      (let ((id_0
                                                                                             (let ((d_0
                                                                                                    (cdr
                                                                                                     (unwrap
                                                                                                      v_2))))
                                                                                               (let ((a_0
                                                                                                      (car
                                                                                                       (unwrap
                                                                                                        d_0))))
                                                                                                 a_0))))
                                                                                        (let ((u_0
                                                                                               (unwrap
                                                                                                id_0)))
                                                                                          (let ((v_3
                                                                                                 (let ((or-part_0
                                                                                                        (let ((ex_0
                                                                                                               (let ((or-part_0
                                                                                                                      (hash-ref
                                                                                                                       exports_0
                                                                                                                       u_0
                                                                                                                       #f)))
                                                                                                                 (if or-part_0
                                                                                                                   or-part_0
                                                                                                                   (hash-ref
                                                                                                                    extra-variables_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_3
                                                                                              (list
                                                                                               'make-instance-variable-reference
                                                                                               'instance-variable-reference
                                                                                               v_3)
                                                                                              (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_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)))
                                                                                                          (begin-unsafe
                                                                                                           (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 ((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
                                                                                                   exp1_0
                                                                                                   'fresh)))
                                                                                             (let ((exp2_1
                                                                                                    (schemify_0
                                                                                                     exp2_0
                                                                                                     'fresh)))
                                                                                               (let ((exp1_2
                                                                                                      exp1_1))
                                                                                                 (if (eq?
                                                                                                      exp1_2
                                                                                                      exp2_1)
                                                                                                   #t
                                                                                                   (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)
                                                                                                        #f
                                                                                                        target_0
                                                                                                        prim-knowns_0
                                                                                                        knowns_1
                                                                                                        imports_0
                                                                                                        mutated_0
                                                                                                        simples_0
                                                                                                        unsafe-mode?_0))))))))
                                                                                          (args
                                                                                           (raise-binding-result-arity-error
                                                                                            2
                                                                                            args))))
                                                                                        (if (if (eq?
                                                                                                 'call-with-values
                                                                                                 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)))
                                                                                                            (begin-unsafe
                                                                                                             (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 ((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
                                                                                                       generator_0
                                                                                                       'fresh)))
                                                                                                 (list
                                                                                                  'call-with-values
                                                                                                  app_0
                                                                                                  (schemify_0
                                                                                                   receiver_0
                                                                                                   'fresh)))
                                                                                               (let ((app_0
                                                                                                      (if (eq?
                                                                                                           target_0
                                                                                                           'cify)
                                                                                                        'call-with-values
                                                                                                        '|#%call-with-values|)))
                                                                                                 (left-to-right/app
                                                                                                  app_0
                                                                                                  (let ((app_1
                                                                                                         (schemify_0
                                                                                                          generator_0
                                                                                                          'fresh)))
                                                                                                    (list
                                                                                                     app_1
                                                                                                     (schemify_0
                                                                                                      receiver_0
                                                                                                      'fresh)))
                                                                                                  #f
                                                                                                  target_0
                                                                                                  prim-knowns_0
                                                                                                  knowns_1
                                                                                                  imports_0
                                                                                                  mutated_0
                                                                                                  simples_0
                                                                                                  unsafe-mode?_0))))
                                                                                            (args
                                                                                             (raise-binding-result-arity-error
                                                                                              2
                                                                                              args))))
                                                                                          (if (if (eq?
                                                                                                   'single-flonum-available?
                                                                                                   hd_0)
                                                                                                (let ((a_0
                                                                                                       (cdr
                                                                                                        (unwrap
                                                                                                         v_2))))
                                                                                                  (begin-unsafe
                                                                                                   (let ((app_0
                                                                                                          (unwrap
                                                                                                           '())))
                                                                                                     (eq?
                                                                                                      app_0
                                                                                                      (unwrap
                                                                                                       a_0)))))
                                                                                                #f)
                                                                                            (eq?
                                                                                             target_0
                                                                                             'cify)
                                                                                            (if (let ((p_0
                                                                                                       (unwrap
                                                                                                        v_2)))
                                                                                                  (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)))
                                                                                                                    (begin-unsafe
                                                                                                                     (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)))
                                                                                                                              (begin-unsafe
                                                                                                                               (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_2)))
                                                                                                   (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
                                                                                                  (list
                                                                                                   'letrec-values
                                                                                                   binds_0
                                                                                                   (list*
                                                                                                    rator_0
                                                                                                    rands_0))
                                                                                                  wcm-state_2))
                                                                                                (args
                                                                                                 (raise-binding-result-arity-error
                                                                                                  3
                                                                                                  args))))
                                                                                              (if (let ((p_0
                                                                                                         (unwrap
                                                                                                          v_2)))
                                                                                                    (if (pair?
                                                                                                         p_0)
                                                                                                      (let ((a_0
                                                                                                             (cdr
                                                                                                              p_0)))
                                                                                                        (wrap-list?
                                                                                                         a_0))
                                                                                                      #f))
                                                                                                (call-with-values
                                                                                                 (lambda ()
                                                                                                   (let ((p_0
                                                                                                          (unwrap
                                                                                                           v_2)))
                                                                                                     (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)
                                                                                                   (letrec*
                                                                                                    ((left-left-lambda-convert_0
                                                                                                      (|#%name|
                                                                                                       left-left-lambda-convert
                                                                                                       (lambda (rator_1
                                                                                                                inline-fuel_1)
                                                                                                         (begin
                                                                                                           (let ((hd_1
                                                                                                                  (let ((p_0
                                                                                                                         (unwrap
                                                                                                                          rator_1)))
                                                                                                                    (if (pair?
                                                                                                                         p_0)
                                                                                                                      (unwrap
                                                                                                                       (car
                                                                                                                        p_0))
                                                                                                                      #f))))
                                                                                                             (if (if (eq?
                                                                                                                      'lambda
                                                                                                                      hd_1)
                                                                                                                   (let ((a_0
                                                                                                                          (cdr
                                                                                                                           (unwrap
                                                                                                                            rator_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
                                                                                                                           rator_1))))
                                                                                                                    (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)
                                                                                                                              (let ((r_0
                                                                                                                                     (schemify/knowns_0
                                                                                                                                      knowns_1
                                                                                                                                      inline-fuel_1
                                                                                                                                      wcm-state_2
                                                                                                                                      (list*
                                                                                                                                       'let-values
                                                                                                                                       (reverse$1
                                                                                                                                        binds_0)
                                                                                                                                       bodys_0))))
                                                                                                                                (if r_0
                                                                                                                                  r_0
                                                                                                                                  ''#f))
                                                                                                                              #f)
                                                                                                                            (if (null?
                                                                                                                                 args_0)
                                                                                                                              #f
                                                                                                                              (if (not
                                                                                                                                   (pair?
                                                                                                                                    formal-args_1))
                                                                                                                                (loop_0
                                                                                                                                 '()
                                                                                                                                 '()
                                                                                                                                 (cons
                                                                                                                                  (let ((app_0
                                                                                                                                         (list
                                                                                                                                          formal-args_1)))
                                                                                                                                    (list
                                                                                                                                     app_0
                                                                                                                                     (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_1)
                                                                                                                     (let ((a_0
                                                                                                                            (cdr
                                                                                                                             (unwrap
                                                                                                                              rator_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)
                                                                                                                                     (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_1))))
                                                                                                                      (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
                                                                                                                            (list*
                                                                                                                             'lambda
                                                                                                                             formal-args_0
                                                                                                                             bodys_0)
                                                                                                                            inline-fuel_1)))
                                                                                                                      (if or-part_0
                                                                                                                        or-part_0
                                                                                                                        (left-left-lambda-convert_0
                                                                                                                         (list*
                                                                                                                          'case-lambda
                                                                                                                          rest_0)
                                                                                                                         inline-fuel_1))))
                                                                                                                   (args
                                                                                                                    (raise-binding-result-arity-error
                                                                                                                     3
                                                                                                                     args))))
                                                                                                                 #f))))))))
                                                                                                    (let ((inline-rator_0
                                                                                                           (|#%name|
                                                                                                            inline-rator
                                                                                                            (lambda ()
                                                                                                              (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_1
                                                                                                                          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
                                                                                                                              app_0
                                                                                                                              (sub1
                                                                                                                               inline-fuel_0)))
                                                                                                                           #f))
                                                                                                                        (args
                                                                                                                         (raise-binding-result-arity-error
                                                                                                                          2
                                                                                                                          args))))
                                                                                                                      #f)
                                                                                                                    #f)))))))
                                                                                                      (let ((maybe-tmp_0
                                                                                                             (|#%name|
                                                                                                              maybe-tmp
                                                                                                              (lambda (e_0
                                                                                                                       name_0)
                                                                                                                (begin
                                                                                                                  (if (simple/can-copy?
                                                                                                                       e_0
                                                                                                                       prim-knowns_0
                                                                                                                       knowns_1
                                                                                                                       imports_0
                                                                                                                       mutated_0)
                                                                                                                    e_0
                                                                                                                    (deterministic-gensym
                                                                                                                     name_0)))))))
                                                                                                        (let ((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)))))))
                                                                                                          (let ((inline-struct-constructor_0
                                                                                                                 (|#%name|
                                                                                                                  inline-struct-constructor
                                                                                                                  (lambda (k_0
                                                                                                                           s-rator_0
                                                                                                                           im_0
                                                                                                                           args_0)
                                                                                                                    (begin
                                                                                                                      (let ((type-id_0
                                                                                                                             (if (let ((app_0
                                                                                                                                        (known-procedure-arity-mask
                                                                                                                                         k_0)))
                                                                                                                                   (bitwise-bit-set?
                                                                                                                                    app_0
                                                                                                                                    (length
                                                                                                                                     args_0)))
                                                                                                                               (inline-type-id
                                                                                                                                k_0
                                                                                                                                im_0
                                                                                                                                add-import!_0
                                                                                                                                mutated_0
                                                                                                                                imports_0)
                                                                                                                               #f)))
                                                                                                                        (if type-id_0
                                                                                                                          (left-to-right/app
                                                                                                                           'unsafe-struct
                                                                                                                           (cons
                                                                                                                            (schemify_0
                                                                                                                             type-id_0
                                                                                                                             'fresh)
                                                                                                                            args_0)
                                                                                                                           #f
                                                                                                                           target_0
                                                                                                                           prim-knowns_0
                                                                                                                           knowns_1
                                                                                                                           imports_0
                                                                                                                           mutated_0
                                                                                                                           simples_0
                                                                                                                           unsafe-mode?_0)
                                                                                                                          #f)))))))
                                                                                                            (let ((inline-struct-predicate_0
                                                                                                                   (|#%name|
                                                                                                                    inline-struct-predicate
                                                                                                                    (lambda (k_0
                                                                                                                             s-rator_0
                                                                                                                             im_0
                                                                                                                             args_0)
                                                                                                                      (begin
                                                                                                                        (let ((type-id_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)))
                                                                                                                          (let ((unsafe-struct?_0
                                                                                                                                 (if (known-struct-predicate-sealed?
                                                                                                                                      k_0)
                                                                                                                                   'unsafe-sealed-struct?
                                                                                                                                   'unsafe-struct?)))
                                                                                                                            (if (not
                                                                                                                                 type-id_0)
                                                                                                                              #f
                                                                                                                              (if (known-struct-predicate-authentic?
                                                                                                                                   k_0)
                                                                                                                                (let ((tmp_0
                                                                                                                                       (maybe-tmp_0
                                                                                                                                        (car
                                                                                                                                         args_0)
                                                                                                                                        'v)))
                                                                                                                                  (let ((ques_0
                                                                                                                                         (list
                                                                                                                                          unsafe-struct?_0
                                                                                                                                          tmp_0
                                                                                                                                          (schemify_0
                                                                                                                                           type-id_0
                                                                                                                                           'fresh))))
                                                                                                                                    (wrap-tmp_0
                                                                                                                                     tmp_0
                                                                                                                                     (car
                                                                                                                                      args_0)
                                                                                                                                     ques_0)))
                                                                                                                                (let ((tmp_0
                                                                                                                                       (maybe-tmp_0
                                                                                                                                        (car
                                                                                                                                         args_0)
                                                                                                                                        'v)))
                                                                                                                                  (let ((schemified-type-id_0
                                                                                                                                         (schemify_0
                                                                                                                                          type-id_0
                                                                                                                                          'fresh)))
                                                                                                                                    (let ((tmp-type-id_0
                                                                                                                                           (maybe-tmp_0
                                                                                                                                            schemified-type-id_0
                                                                                                                                            'v)))
                                                                                                                                      (let ((ques_0
                                                                                                                                             (list
                                                                                                                                              'if
                                                                                                                                              (list
                                                                                                                                               unsafe-struct?_0
                                                                                                                                               tmp_0
                                                                                                                                               tmp-type-id_0)
                                                                                                                                              #t
                                                                                                                                              (list*
                                                                                                                                               'if
                                                                                                                                               (list
                                                                                                                                                'impersonator?
                                                                                                                                                tmp_0)
                                                                                                                                               (list
                                                                                                                                                unsafe-struct?_0
                                                                                                                                                (list
                                                                                                                                                 'impersonator-val
                                                                                                                                                 tmp_0)
                                                                                                                                                tmp-type-id_0)
                                                                                                                                               '(#f)))))
                                                                                                                                        (let ((app_0
                                                                                                                                               (car
                                                                                                                                                args_0)))
                                                                                                                                          (wrap-tmp_0
                                                                                                                                           tmp_0
                                                                                                                                           app_0
                                                                                                                                           (wrap-tmp_0
                                                                                                                                            tmp-type-id_0
                                                                                                                                            schemified-type-id_0
                                                                                                                                            ques_0))))))))))))))))
                                                                                                              (let ((inline-field-access_0
                                                                                                                     (|#%name|
                                                                                                                      inline-field-access
                                                                                                                      (lambda (k_0
                                                                                                                               s-rator_0
                                                                                                                               im_0
                                                                                                                               args_0)
                                                                                                                        (begin
                                                                                                                          (let ((type-id_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)))
                                                                                                                            (if type-id_0
                                                                                                                              (let ((tmp_0
                                                                                                                                     (maybe-tmp_0
                                                                                                                                      (car
                                                                                                                                       args_0)
                                                                                                                                      'v)))
                                                                                                                                (let ((sel_0
                                                                                                                                       (if (if unsafe-mode?_0
                                                                                                                                             (known-field-accessor-authentic?
                                                                                                                                              k_0)
                                                                                                                                             #f)
                                                                                                                                         (list
                                                                                                                                          'unsafe-struct*-ref
                                                                                                                                          tmp_0
                                                                                                                                          (known-field-accessor-pos
                                                                                                                                           k_0))
                                                                                                                                         (let ((app_0
                                                                                                                                                (list
                                                                                                                                                 'unsafe-struct?
                                                                                                                                                 tmp_0
                                                                                                                                                 (schemify_0
                                                                                                                                                  type-id_0
                                                                                                                                                  'fresh))))
                                                                                                                                           (let ((app_1
                                                                                                                                                  (list
                                                                                                                                                   'unsafe-struct*-ref
                                                                                                                                                   tmp_0
                                                                                                                                                   (known-field-accessor-pos
                                                                                                                                                    k_0))))
                                                                                                                                             (list
                                                                                                                                              'if
                                                                                                                                              app_0
                                                                                                                                              app_1
                                                                                                                                              (let ((a_0
                                                                                                                                                     (list
                                                                                                                                                      s-rator_0
                                                                                                                                                      tmp_0)))
                                                                                                                                                (if (known-field-accessor-authentic?
                                                                                                                                                     k_0)
                                                                                                                                                  (cons
                                                                                                                                                   '|#%app/no-return|
                                                                                                                                                   a_0)
                                                                                                                                                  a_0))))))))
                                                                                                                                  (wrap-tmp_0
                                                                                                                                   tmp_0
                                                                                                                                   (car
                                                                                                                                    args_0)
                                                                                                                                   sel_0)))
                                                                                                                              #f)))))))
                                                                                                                (let ((inline-field-mutate_0
                                                                                                                       (|#%name|
                                                                                                                        inline-field-mutate
                                                                                                                        (lambda (k_0
                                                                                                                                 s-rator_0
                                                                                                                                 im_0
                                                                                                                                 args_0)
                                                                                                                          (begin
                                                                                                                            (let ((type-id_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)))
                                                                                                                              (if type-id_0
                                                                                                                                (let ((tmp_0
                                                                                                                                       (maybe-tmp_0
                                                                                                                                        (car
                                                                                                                                         args_0)
                                                                                                                                        'v)))
                                                                                                                                  (let ((tmp-rhs_0
                                                                                                                                         (maybe-tmp_0
                                                                                                                                          (cadr
                                                                                                                                           args_0)
                                                                                                                                          'rhs)))
                                                                                                                                    (let ((mut_0
                                                                                                                                           (if (if unsafe-mode?_0
                                                                                                                                                 (known-field-mutator-authentic?
                                                                                                                                                  k_0)
                                                                                                                                                 #f)
                                                                                                                                             (list
                                                                                                                                              'unsafe-struct*-set!
                                                                                                                                              tmp_0
                                                                                                                                              (known-field-mutator-pos
                                                                                                                                               k_0)
                                                                                                                                              tmp-rhs_0)
                                                                                                                                             (let ((app_0
                                                                                                                                                    (list
                                                                                                                                                     'unsafe-struct?
                                                                                                                                                     tmp_0
                                                                                                                                                     (schemify_0
                                                                                                                                                      type-id_0
                                                                                                                                                      'fresh))))
                                                                                                                                               (let ((app_1
                                                                                                                                                      (list
                                                                                                                                                       'unsafe-struct*-set!
                                                                                                                                                       tmp_0
                                                                                                                                                       (known-field-mutator-pos
                                                                                                                                                        k_0)
                                                                                                                                                       tmp-rhs_0)))
                                                                                                                                                 (list
                                                                                                                                                  'if
                                                                                                                                                  app_0
                                                                                                                                                  app_1
                                                                                                                                                  (let ((a_0
                                                                                                                                                         (list
                                                                                                                                                          s-rator_0
                                                                                                                                                          tmp_0
                                                                                                                                                          tmp-rhs_0)))
                                                                                                                                                    (if (known-field-mutator-authentic?
                                                                                                                                                         k_0)
                                                                                                                                                      (cons
                                                                                                                                                       '|#%app/no-return|
                                                                                                                                                       a_0)
                                                                                                                                                      a_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)))))))
                                                                                                                  (let ((or-part_0
                                                                                                                         (left-left-lambda-convert_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)
                                                                                                                               #f)))
                                                                                                                        (if or-part_1
                                                                                                                          or-part_1
                                                                                                                          (let ((s-rator_0
                                                                                                                                 (schemify_0
                                                                                                                                  rator_0
                                                                                                                                  'fresh)))
                                                                                                                            (let ((args_0
                                                                                                                                   (schemify-body_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_1
                                                                                                                                      imports_0
                                                                                                                                      mutated_0))
                                                                                                                                   (case-lambda
                                                                                                                                    ((k_0
                                                                                                                                      im_0)
                                                                                                                                     (let ((c6_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 c6_0
                                                                                                                                         (let ((app_0
                                                                                                                                                (car
                                                                                                                                                 c6_0)))
                                                                                                                                           (left-to-right/app
                                                                                                                                            app_0
                                                                                                                                            (cdr
                                                                                                                                             c6_0)
                                                                                                                                            #f
                                                                                                                                            target_0
                                                                                                                                            prim-knowns_0
                                                                                                                                            knowns_1
                                                                                                                                            imports_0
                                                                                                                                            mutated_0
                                                                                                                                            simples_0
                                                                                                                                            unsafe-mode?_0))
                                                                                                                                         (let ((c5_0
                                                                                                                                                (if (not
                                                                                                                                                     (let ((or-part_2
                                                                                                                                                            (eq?
                                                                                                                                                             target_0
                                                                                                                                                             'cify)))
                                                                                                                                                       (if or-part_2
                                                                                                                                                         or-part_2
                                                                                                                                                         (eq?
                                                                                                                                                          target_0
                                                                                                                                                          'system))))
                                                                                                                                                  (if (known-struct-constructor?
                                                                                                                                                       k_0)
                                                                                                                                                    (inline-struct-constructor_0
                                                                                                                                                     k_0
                                                                                                                                                     s-rator_1
                                                                                                                                                     im_0
                                                                                                                                                     args_1)
                                                                                                                                                    #f)
                                                                                                                                                  #f)))
                                                                                                                                           (if c5_0
                                                                                                                                             c5_0
                                                                                                                                             (let ((c4_0
                                                                                                                                                    (if (not
                                                                                                                                                         (let ((or-part_2
                                                                                                                                                                (eq?
                                                                                                                                                                 target_0
                                                                                                                                                                 'cify)))
                                                                                                                                                           (if or-part_2
                                                                                                                                                             or-part_2
                                                                                                                                                             (eq?
                                                                                                                                                              target_0
                                                                                                                                                              'system))))
                                                                                                                                                      (if (known-struct-predicate?
                                                                                                                                                           k_0)
                                                                                                                                                        (inline-struct-predicate_0
                                                                                                                                                         k_0
                                                                                                                                                         s-rator_1
                                                                                                                                                         im_0
                                                                                                                                                         args_1)
                                                                                                                                                        #f)
                                                                                                                                                      #f)))
                                                                                                                                               (if c4_0
                                                                                                                                                 c4_0
                                                                                                                                                 (let ((c3_0
                                                                                                                                                        (if (not
                                                                                                                                                             (let ((or-part_2
                                                                                                                                                                    (eq?
                                                                                                                                                                     target_0
                                                                                                                                                                     'cify)))
                                                                                                                                                               (if or-part_2
                                                                                                                                                                 or-part_2
                                                                                                                                                                 (eq?
                                                                                                                                                                  target_0
                                                                                                                                                                  'system))))
                                                                                                                                                          (if (known-field-accessor?
                                                                                                                                                               k_0)
                                                                                                                                                            (inline-field-access_0
                                                                                                                                                             k_0
                                                                                                                                                             s-rator_1
                                                                                                                                                             im_0
                                                                                                                                                             args_1)
                                                                                                                                                            #f)
                                                                                                                                                          #f)))
                                                                                                                                                   (if c3_0
                                                                                                                                                     c3_0
                                                                                                                                                     (let ((c2_0
                                                                                                                                                            (if (not
                                                                                                                                                                 (let ((or-part_2
                                                                                                                                                                        (eq?
                                                                                                                                                                         target_0
                                                                                                                                                                         'cify)))
                                                                                                                                                                   (if or-part_2
                                                                                                                                                                     or-part_2
                                                                                                                                                                     (eq?
                                                                                                                                                                      target_0
                                                                                                                                                                      'system))))
                                                                                                                                                              (if (known-field-mutator?
                                                                                                                                                                   k_0)
                                                                                                                                                                (inline-field-mutate_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
                                                                                                                                                            #f
                                                                                                                                                            target_0
                                                                                                                                                            prim-knowns_0
                                                                                                                                                            knowns_1
                                                                                                                                                            imports_0
                                                                                                                                                            mutated_0
                                                                                                                                                            simples_0
                                                                                                                                                            unsafe-mode?_0)
                                                                                                                                                           (left-to-right/app
                                                                                                                                                            s-rator_1
                                                                                                                                                            args_1
                                                                                                                                                            (if (if (not
                                                                                                                                                                     (eq?
                                                                                                                                                                      target_0
                                                                                                                                                                      'system))
                                                                                                                                                                  (known-procedure/no-return?
                                                                                                                                                                   k_0)
                                                                                                                                                                  #f)
                                                                                                                                                              '|#%app/no-return|
                                                                                                                                                              (if (if im_0
                                                                                                                                                                    (known-procedure/single-valued?
                                                                                                                                                                     k_0)
                                                                                                                                                                    #f)
                                                                                                                                                                '|#%app/value|
                                                                                                                                                                (if (let ((or-part_2
                                                                                                                                                                           (known-procedure?
                                                                                                                                                                            k_0)))
                                                                                                                                                                      (if or-part_2
                                                                                                                                                                        or-part_2
                                                                                                                                                                        (lambda?.1
                                                                                                                                                                         #f
                                                                                                                                                                         rator_0)))
                                                                                                                                                                  #f
                                                                                                                                                                  '|#%app|)))
                                                                                                                                                            target_0
                                                                                                                                                            prim-knowns_0
                                                                                                                                                            knowns_1
                                                                                                                                                            imports_0
                                                                                                                                                            mutated_0
                                                                                                                                                            simples_0
                                                                                                                                                            unsafe-mode?_0)))))))))))))
                                                                                                                                    (args
                                                                                                                                     (raise-binding-result-arity-error
                                                                                                                                      2
                                                                                                                                      args)))))))))))))))))))))
                                                                                                  (args
                                                                                                   (raise-binding-result-arity-error
                                                                                                    2
                                                                                                    args))))
                                                                                                (let ((u-v_0
                                                                                                       (unwrap
                                                                                                        v_2)))
                                                                                                  (if (not
                                                                                                       (symbol?
                                                                                                        u-v_0))
                                                                                                    v_2
                                                                                                    (if (eq?
                                                                                                         u-v_0
                                                                                                         'call-with-values)
                                                                                                      '|#%call-with-values|
                                                                                                      (let ((state_0
                                                                                                             (hash-ref
                                                                                                              mutated_0
                                                                                                              u-v_0
                                                                                                              #f)))
                                                                                                        (let ((c9_0
                                                                                                               (if (via-variable-mutated-state?
                                                                                                                    state_0)
                                                                                                                 (let ((or-part_0
                                                                                                                        (hash-ref
                                                                                                                         exports_0
                                                                                                                         u-v_0
                                                                                                                         #f)))
                                                                                                                   (if or-part_0
                                                                                                                     or-part_0
                                                                                                                     (hash-ref
                                                                                                                      extra-variables_0
                                                                                                                      u-v_0
                                                                                                                      #f)))
                                                                                                                 #f)))
                                                                                                          (if c9_0
                                                                                                            (if (too-early-mutated-state?
                                                                                                                 state_0)
                                                                                                              (list
                                                                                                               'variable-ref
                                                                                                               (export-id
                                                                                                                c9_0))
                                                                                                              (list
                                                                                                               'variable-ref/no-check
                                                                                                               (export-id
                                                                                                                c9_0)))
                                                                                                            (let ((c8_0
                                                                                                                   (hash-ref
                                                                                                                    imports_0
                                                                                                                    u-v_0
                                                                                                                    #f)))
                                                                                                              (if c8_0
                                                                                                                (let ((k_0
                                                                                                                       (import-lookup
                                                                                                                        c8_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
                                                                                                                         c8_0)))
                                                                                                                    (list
                                                                                                                     'variable-ref/no-check
                                                                                                                     (import-id
                                                                                                                      c8_0))))
                                                                                                                (let ((c7_0
                                                                                                                       (hash-ref
                                                                                                                        knowns_1
                                                                                                                        u-v_0
                                                                                                                        #f)))
                                                                                                                  (if c7_0
                                                                                                                    (if (if (known-copy?
                                                                                                                             c7_0)
                                                                                                                          (simple-mutated-state?
                                                                                                                           (hash-ref
                                                                                                                            mutated_0
                                                                                                                            u-v_0
                                                                                                                            #f))
                                                                                                                          #f)
                                                                                                                      (schemify_0
                                                                                                                       (known-copy-id
                                                                                                                        c7_0)
                                                                                                                       wcm-state_2)
                                                                                                                      v_2)
                                                                                                                    (if (if (too-early-mutated-state?
                                                                                                                             state_0)
                                                                                                                          (not
                                                                                                                           (eq?
                                                                                                                            target_0
                                                                                                                            'cify))
                                                                                                                          #f)
                                                                                                                      (list
                                                                                                                       'check-not-unsafe-undefined
                                                                                                                       v_2
                                                                                                                       (list
                                                                                                                        'quote
                                                                                                                        (too-early-mutated-state-name
                                                                                                                         state_0
                                                                                                                         u-v_0)))
                                                                                                                      v_2))))))))))))))))))))))))))))))))))))))))))))))))
                      (optimize
                       s-v_0
                       prim-knowns_0
                       primitives_0
                       knowns_1
                       imports_0
                       mutated_0))))))
              (schemify-body_0
               (|#%name|
                schemify-body
                (lambda (l_0 wcm-state_2)
                  (begin
                    (if (null? l_0)
                      null
                      (if (null? (cdr l_0))
                        (list (schemify_0 (car l_0) wcm-state_2))
                        (let ((app_0 (schemify_0 (car l_0) 'fresh)))
                          (cons
                           app_0
                           (schemify-body_0 (cdr l_0) wcm-state_2))))))))))
             (schemify_0 v_1 wcm-state_1)))))))
     (schemify/knowns_0 knowns_0 8 wcm-state_0 v_0))))
(define finish_2118
  (make-struct-type-install-properties
   '(convert-mode)
   4
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1 2 3)
   #f
   'convert-mode))
(define struct:convert-mode
  (make-record-type-descriptor*
   'convert-mode
   #f
   (|#%nongenerative-uid| convert-mode)
   #f
   #f
   4
   0))
(define effect_2443 (finish_2118 struct:convert-mode))
(define convert-mode1.1
  (|#%name|
   convert-mode
   (record-constructor
    (make-record-constructor-descriptor struct:convert-mode #f #f))))
(define convert-mode?_2433
  (|#%name| convert-mode? (record-predicate struct:convert-mode)))
(define convert-mode?
  (|#%name|
   convert-mode?
   (lambda (v)
     (if (convert-mode?_2433 v)
       #t
       ($value
        (if (impersonator? v)
          (convert-mode?_2433 (impersonator-val v))
          #f))))))
(define convert-mode-sizes_3279
  (|#%name| convert-mode-sizes (record-accessor struct:convert-mode 0)))
(define convert-mode-sizes
  (|#%name|
   convert-mode-sizes
   (lambda (s)
     (if (convert-mode?_2433 s)
       (convert-mode-sizes_3279 s)
       ($value
        (impersonate-ref
         convert-mode-sizes_3279
         struct:convert-mode
         0
         s
         'convert-mode
         'sizes))))))
(define convert-mode-called?_2733
  (|#%name| convert-mode-called? (record-accessor struct:convert-mode 1)))
(define convert-mode-called?
  (|#%name|
   convert-mode-called?
   (lambda (s)
     (if (convert-mode?_2433 s)
       (convert-mode-called?_2733 s)
       ($value
        (impersonate-ref
         convert-mode-called?_2733
         struct:convert-mode
         1
         s
         'convert-mode
         'called?))))))
(define convert-mode-lift?_2529
  (|#%name| convert-mode-lift? (record-accessor struct:convert-mode 2)))
(define convert-mode-lift?
  (|#%name|
   convert-mode-lift?
   (lambda (s)
     (if (convert-mode?_2433 s)
       (convert-mode-lift?_2529 s)
       ($value
        (impersonate-ref
         convert-mode-lift?_2529
         struct:convert-mode
         2
         s
         'convert-mode
         'lift?))))))
(define convert-mode-no-more-conversions?_2511
  (|#%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?_2433 s)
       (convert-mode-no-more-conversions?_2511 s)
       ($value
        (impersonate-ref
         convert-mode-no-more-conversions?_2511
         struct:convert-mode
         3
         s
         'convert-mode
         'no-more-conversions?))))))
(define lifts-id (string->uninterned-symbol "_jits"))
(define jitify-schemified-linklet
  (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)))))))
              (letrec*
               ((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)))
                                      (begin-unsafe
                                       (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)))
                                        (begin-unsafe
                                         (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)))
                                                (begin-unsafe
                                                 (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)))
                                            (begin-unsafe
                                             (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))))))))))
               (let ((id<?_0
                      (|#%name|
                       id<?
                       (lambda (a_0 b_0)
                         (begin
                           (let ((app_0 (unwrap a_0)))
                             (symbol<? app_0 (unwrap b_0))))))))
                 (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)))
                                                         (begin-unsafe
                                                          (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
            (letrec*
             ((loop_0
               (|#%name|
                loop
                (lambda (v_1 env_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 ((new-body_0
                                  (jitify-schemified-body_0
                                   body_0
                                   (plain-add-args_0 env_0 args_0))))
                             (reannotate
                              v_1
                              (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_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)))
                                            (begin-unsafe
                                             (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 ((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
                                     body_0
                                     (add-bindings_0 env_0 bindings_0))))
                               (reannotate
                                v_1
                                (list 'let* bindings_0 new-body_0))))
                            (args (raise-binding-result-arity-error 2 args))))
                          (error 'match "failed ~e" v_1)))))))))
             (loop_0 v_0 hash2610))))))
      (jitify-schemified-body_0
       (|#%name|
        jitify-schemified-body
        (lambda (body_0 env_0)
          (begin
            (let ((top-env_0
                   (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
                                                 (letrec*
                                                  ((loop_0
                                                    (|#%name|
                                                     loop
                                                     (lambda (v_2 env_2)
                                                       (begin
                                                         (let ((hd_0
                                                                (let ((p_0
                                                                       (unwrap
                                                                        v_2)))
                                                                  (if (pair?
                                                                       p_0)
                                                                    (unwrap
                                                                     (car p_0))
                                                                    #f))))
                                                           (if (if (eq?
                                                                    'variable-set!
                                                                    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)
                                                                             #t
                                                                             #f)))
                                                                       #f)))
                                                                 #f)
                                                             (call-with-values
                                                              (lambda ()
                                                                (let ((d_0
                                                                       (cdr
                                                                        (unwrap
                                                                         v_2))))
                                                                  (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_2
                                                                   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_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)
                                                                               #t
                                                                               #f)))
                                                                         #f)))
                                                                   #f)
                                                               (call-with-values
                                                                (lambda ()
                                                                  (let ((d_0
                                                                         (cdr
                                                                          (unwrap
                                                                           v_2))))
                                                                    (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_2
                                                                     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_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)
                                                                                 (if (let ((a_2
                                                                                            (car
                                                                                             p_1)))
                                                                                       (let ((p_2
                                                                                              (unwrap
                                                                                               a_2)))
                                                                                         (if (pair?
                                                                                              p_2)
                                                                                           (if (let ((a_3
                                                                                                      (car
                                                                                                       p_2)))
                                                                                                 (begin-unsafe
                                                                                                  (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)))
                                                                                                     (begin-unsafe
                                                                                                      (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_2))))
                                                                      (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_1
                                                                         (|#%name|
                                                                          for-loop
                                                                          (lambda (env_3
                                                                                   lst_1
                                                                                   lst_2)
                                                                            (begin
                                                                              (if (if (pair?
                                                                                       lst_1)
                                                                                    (pair?
                                                                                     lst_2)
                                                                                    #f)
                                                                                (let ((id_0
                                                                                       (unsafe-car
                                                                                        lst_1)))
                                                                                  (let ((rest_1
                                                                                         (unsafe-cdr
                                                                                          lst_1)))
                                                                                    (let ((var-id_0
                                                                                           (unsafe-car
                                                                                            lst_2)))
                                                                                      (let ((rest_2
                                                                                             (unsafe-cdr
                                                                                              lst_2)))
                                                                                        (let ((env_4
                                                                                               (let ((env_4
                                                                                                      (let ((app_0
                                                                                                             (unwrap
                                                                                                              id_0)))
                                                                                                        (hash-set
                                                                                                         env_3
                                                                                                         app_0
                                                                                                         (list
                                                                                                          'variable-ref
                                                                                                          (unwrap
                                                                                                           var-id_0))))))
                                                                                                 (values
                                                                                                  env_4))))
                                                                                          (for-loop_1
                                                                                           env_4
                                                                                           rest_1
                                                                                           rest_2))))))
                                                                                env_3))))))
                                                                       (for-loop_1
                                                                        env_2
                                                                        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_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)))
                                                                                     (begin-unsafe
                                                                                      (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 ((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_0
                                                                       env_2
                                                                       id_0
                                                                       #f))
                                                                     (args
                                                                      (raise-binding-result-arity-error
                                                                       2
                                                                       args))))
                                                                   (if (if (eq?
                                                                            'define-values
                                                                            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)))
                                                                                       (begin-unsafe
                                                                                        (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 ((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_0
                                                                         env_2
                                                                         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_2))))
                                                                                d_0)))
                                                                         (begin
                                                                           (letrec*
                                                                            ((for-loop_1
                                                                              (|#%name|
                                                                               for-loop
                                                                               (lambda (env_3
                                                                                        lst_1)
                                                                                 (begin
                                                                                   (if (not
                                                                                        (begin-unsafe
                                                                                         (null?
                                                                                          (unwrap
                                                                                           lst_1))))
                                                                                     (let ((v_3
                                                                                            (if (begin-unsafe
                                                                                                 (pair?
                                                                                                  (unwrap
                                                                                                   lst_1)))
                                                                                              (wrap-car
                                                                                               lst_1)
                                                                                              lst_1)))
                                                                                       (let ((rest_1
                                                                                              (if (begin-unsafe
                                                                                                   (pair?
                                                                                                    (unwrap
                                                                                                     lst_1)))
                                                                                                (wrap-cdr
                                                                                                 lst_1)
                                                                                                null)))
                                                                                         (let ((v_4
                                                                                                v_3))
                                                                                           (let ((env_4
                                                                                                  (let ((env_4
                                                                                                         (loop_0
                                                                                                          v_4
                                                                                                          env_3)))
                                                                                                    (values
                                                                                                     env_4))))
                                                                                             (for-loop_1
                                                                                              env_4
                                                                                              rest_1)))))
                                                                                     env_3))))))
                                                                            (for-loop_1
                                                                             env_2
                                                                             vs_0))))
                                                                       env_2))))))))))))
                                                  (loop_0 v_1 env_1))))
                                            (values env_2))))
                                     (for-loop_0 env_2 rest_0))))
                               env_1))))))
                      (for-loop_0 env_0 body_0)))))
              (letrec*
               ((loop_0
                 (|#%name|
                  loop
                  (lambda (body_1)
                    (begin
                      (reverse$1
                       (begin
                         (letrec*
                          ((for-loop_0
                            (|#%name|
                             for-loop
                             (lambda (fold-var_0 lst_0)
                               (begin
                                 (if (pair? lst_0)
                                   (let ((v_1 (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_1)))
                                                               (if (pair? p_0)
                                                                 (unwrap
                                                                  (car p_0))
                                                                 #f))))
                                                        (if (if (eq?
                                                                 'variable-set!/define
                                                                 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)
                                                                                (if (let ((a_3
                                                                                           (car
                                                                                            p_2)))
                                                                                      (let ((p_3
                                                                                             (unwrap
                                                                                              a_3)))
                                                                                        (if (pair?
                                                                                             p_3)
                                                                                          (if (let ((a_4
                                                                                                     (car
                                                                                                      p_3)))
                                                                                                (begin-unsafe
                                                                                                 (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)))
                                                                                                    (begin-unsafe
                                                                                                     (let ((app_0
                                                                                                            (unwrap
                                                                                                             '())))
                                                                                                       (eq?
                                                                                                        app_0
                                                                                                        (unwrap
                                                                                                         a_5)))))
                                                                                                  #f)))
                                                                                            #f)
                                                                                          #f)))
                                                                                  (let ((a_3
                                                                                         (cdr
                                                                                          p_2)))
                                                                                    (begin-unsafe
                                                                                     (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_1))))
                                                               (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
                                                                 (set! top-env_0
                                                                   (let ((app_0
                                                                          top-env_0))
                                                                     (hash-set
                                                                      app_0
                                                                      (unwrap
                                                                       id_0)
                                                                      kw2846)))
                                                                 (void))
                                                               v_1))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              3
                                                              args))))
                                                          (if (if (eq?
                                                                   'define
                                                                   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)))
                                                                              (begin-unsafe
                                                                               (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)
                                                               (let ((self-env_0
                                                                      (add-self_0
                                                                       top-env_0
                                                                       hash2610
                                                                       id_0)))
                                                                 (reannotate
                                                                  v_1
                                                                  (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_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)))
                                                                                (begin-unsafe
                                                                                 (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 ((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_1
                                                                  (list
                                                                   'define-values
                                                                   ids_0
                                                                   (jitify-top-expr_0
                                                                    rhs_0
                                                                    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_1))))
                                                                         d_0)))
                                                                  (reannotate
                                                                   v_1
                                                                   (list*
                                                                    'begin
                                                                    (loop_0
                                                                     vs_0))))
                                                                (jitify-top-expr_0
                                                                 v_1
                                                                 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_1)))))))))
               (loop_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
                                         (begin-unsafe (null? (unwrap lst_0))))
                                      (let ((v_2
                                             (if (begin-unsafe
                                                  (pair? (unwrap lst_0)))
                                               (wrap-car lst_0)
                                               lst_0)))
                                        (let ((rest_0
                                               (if (begin-unsafe
                                                    (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
                                         (begin-unsafe (null? (unwrap lst_0))))
                                      (let ((v_2
                                             (if (begin-unsafe
                                                  (pair? (unwrap lst_0)))
                                               (wrap-car lst_0)
                                               lst_0)))
                                        (let ((rest_0
                                               (if (begin-unsafe
                                                    (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)
                                                                 (let ((app_0
                                                                        (cons
                                                                         new-body_0
                                                                         rev-new-bodys_0)))
                                                                   (values
                                                                    app_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? 'begin-unsafe hd_0) #t #f)
                            (let ((vs_0 (let ((d_0 (cdr (unwrap v_1)))) d_0)))
                              (jitify-expr_0
                               (list* 'begin vs_0)
                               env_0
                               mutables_0
                               free_0
                               lifts_0
                               convert-mode_0
                               name_0
                               in-name_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 ((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)))
                                            (begin-unsafe
                                             (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)))
                                                          (begin-unsafe
                                                           (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)))
                                                                  (begin-unsafe
                                                                   (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)))
                                                  (begin-unsafe
                                                   (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)))
                                                          (begin-unsafe
                                                           (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)))
                                                                        (begin-unsafe
                                                                         (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))
                                                                     (begin-unsafe
                                                                      (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)))
                                                                               (begin-unsafe
                                                                                (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)))
                                                                                 (begin-unsafe
                                                                                  (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)))
                                                                                     (begin-unsafe
                                                                                      (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)))
                                                                                   (begin-unsafe
                                                                                    (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)))
                                                                                       (begin-unsafe
                                                                                        (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)))
                                                            (begin-unsafe
                                                             (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)))
                                                                            (begin-unsafe
                                                                             (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)))
                                                  (if (symbol? id_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)))
                                                                            (begin-unsafe
                                                                             (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 (begin-unsafe
                                                                    (let ((app_0
                                                                           (unwrap
                                                                            #f)))
                                                                      (eq?
                                                                       app_0
                                                                       (unwrap
                                                                        dest_0))))
                                                                 v_1
                                                                 (if (let ((a_0
                                                                            kw2846))
                                                                       (begin-unsafe
                                                                        (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)))
                                                                                 (begin-unsafe
                                                                                  (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)))))
                                                    (values
                                                     v_1
                                                     free_0
                                                     lifts_0)))))))))))))))))))))))))
      (lambda?_0
       (|#%name|
        lambda?
        (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? 'lambda hd_0) #t #f)
                #t
                (if (if (eq? 'case-lambda hd_0) #t #f) #t #f)))))))
      (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
            (letrec*
             ((loop_0
               (|#%name|
                loop
                (lambda (vs_1 free_1 lifts_1)
                  (begin
                    (if (begin-unsafe (null? (unwrap vs_1)))
                      (values null free_1 lifts_1)
                      (if (let ((v_1 (wrap-cdr vs_1)))
                            (begin-unsafe (null? (unwrap v_1))))
                        (call-with-values
                         (lambda ()
                           (jitify-expr_0
                            (wrap-car vs_1)
                            env_0
                            mutables_0
                            free_1
                            lifts_1
                            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_1)))
                             (jitify-expr_0
                              app_0
                              env_0
                              mutables_0
                              free_1
                              lifts_1
                              (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_0 (wrap-cdr vs_1) 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_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
                                                 (begin-unsafe
                                                  (null? (unwrap lst_0))))
                                              (let ((v_2
                                                     (if (begin-unsafe
                                                          (pair?
                                                           (unwrap lst_0)))
                                                       (wrap-car lst_0)
                                                       lst_0)))
                                                (let ((rest_0
                                                       (if (begin-unsafe
                                                            (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)))
                                                                              (begin-unsafe
                                                                               (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
                                                   (begin-unsafe
                                                    (null? (unwrap lst_0))))
                                                (let ((v_2
                                                       (if (begin-unsafe
                                                            (pair?
                                                             (unwrap lst_0)))
                                                         (wrap-car lst_0)
                                                         lst_0)))
                                                  (let ((rest_0
                                                         (if (begin-unsafe
                                                              (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
                               (lambda (var_0) #t)
                               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
                     (letrec*
                      ((loop_0
                        (|#%name|
                         loop
                         (lambda (args_1)
                           (begin
                             (if (begin-unsafe (null? (unwrap args_1)))
                               null
                               (if (begin-unsafe (pair? (unwrap args_1)))
                                 (let ((id_0 (wrap-car args_1)))
                                   (let ((var_0 (unwrap id_0)))
                                     (let ((rest_0 (loop_0 (wrap-cdr args_1))))
                                       (if (hash-ref mutables_0 var_0 #f)
                                         (cons
                                          (list id_0 (list 'box id_0))
                                          rest_0)
                                         rest_0))))
                                 (loop_0 (list args_1)))))))))
                      (loop_0 args_0))))
                (if (null? bindings_0)
                  body_0
                  (list (list* 'let bindings_0 body_0))))
              body_0)))))
      (plain-add-args_0
       (let ((plain-add-args_1
              (|#%name|
               plain-add-args
               (lambda (env4_0 args5_0 replace?3_0)
                 (begin
                   (let ((add-one_0
                          (|#%name|
                           add-one
                           (lambda (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)))))))
                     (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_0
                           (add-one_0 id_0)
                           args_0
                           replace?3_0))
                         (args (raise-binding-result-arity-error 2 args))))
                       (if (begin-unsafe
                            (let ((app_0 (unwrap '())))
                              (eq? app_0 (unwrap args5_0))))
                         env4_0
                         (add-one_0 args5_0)))))))))
         (|#%name|
          plain-add-args
          (case-lambda
           ((env_0 args_0) (begin (plain-add-args_1 env_0 args_0 #t)))
           ((env_0 args_0 replace?3_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
            (let ((add-one_0
                   (|#%name|
                    add-one
                    (lambda (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))))))))
              (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_0 id_0)
                    args_1
                    mutables_0
                    convert-mode_0))
                  (args (raise-binding-result-arity-error 2 args))))
                (if (begin-unsafe
                     (let ((app_0 (unwrap '()))) (eq? app_0 (unwrap args_0))))
                  env_0
                  (add-one_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
            (let ((add-one_0
                   (|#%name|
                    add-one
                    (lambda (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)))))))))
              (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_0 id_0)
                    args_1
                    mutables_0
                    var-rec?_0
                    convert-mode_0))
                  (args (raise-binding-result-arity-error 2 args))))
                (if (begin-unsafe
                     (let ((app_0 (unwrap '()))) (eq? app_0 (unwrap args_0))))
                  env_0
                  (add-one_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 (begin-unsafe
                   (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 (begin-unsafe (null? (unwrap lst_0))))
                              (let ((v_1
                                     (if (begin-unsafe (pair? (unwrap lst_0)))
                                       (wrap-car lst_0)
                                       lst_0)))
                                (let ((rest_0
                                       (if (begin-unsafe
                                            (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)))
                                                              (begin-unsafe
                                                               (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
                                           (begin-unsafe
                                            (null? (unwrap lst_0))))
                                        (let ((v_1
                                               (if (begin-unsafe
                                                    (pair? (unwrap lst_0)))
                                                 (wrap-car lst_0)
                                                 lst_0)))
                                          (let ((rest_0
                                                 (if (begin-unsafe
                                                      (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_0 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
       (|#%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)))))))))
      (activate-self_0
       (|#%name|
        activate-self
        (lambda (env_0 name_0)
          (begin
            (if name_0
              (let ((genself_0
                     (|#%name|
                      genself
                      (lambda () (begin (deterministic-gensym "self"))))))
                (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))
                                                 (begin-unsafe
                                                  (let ((app_0 (unwrap a_2)))
                                                    (eq?
                                                     app_0
                                                     (unwrap a_1))))))
                                           (let ((a_1 (cdr p_0)))
                                             (begin-unsafe
                                              (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)))
                                                           (begin-unsafe
                                                            (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)))
                                                               (begin-unsafe
                                                                (let ((app_0
                                                                       (unwrap
                                                                        '())))
                                                                  (eq?
                                                                   app_0
                                                                   (unwrap
                                                                    a_3)))))
                                                             #f)))
                                                       #f)
                                                     #f)))
                                             (let ((a_1 (cdr p_0)))
                                               (begin-unsafe
                                                (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)))
                                                             (begin-unsafe
                                                              (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)))
                                                                 (begin-unsafe
                                                                  (let ((app_0
                                                                         (unwrap
                                                                          '())))
                                                                    (eq?
                                                                     app_0
                                                                     (unwrap
                                                                      a_3)))))
                                                               #f)))
                                                         #f)
                                                       #f)))
                                               (let ((a_1 (cdr p_0)))
                                                 (begin-unsafe
                                                  (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
       (|#%name|
        deactivate-self
        (lambda (env_0 name_0)
          (begin
            (if name_0
              (let ((u_0 (unwrap name_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)
                                (let ((a_1 (cdr p_0)))
                                  (let ((p_1 (unwrap a_1)))
                                    (if (pair? p_1)
                                      (let ((a_2 (cdr p_1)))
                                        (begin-unsafe
                                         (let ((app_0 (unwrap '())))
                                           (eq? app_0 (unwrap a_2)))))
                                      #f)))
                                #f)))
                          #f)
                      (let ((m_0
                             (let ((d_0 (cdr (unwrap v_1))))
                               (let ((a_0 (car (unwrap d_0)))) a_0))))
                        (hash-set env_0 u_0 m_0))
                      env_0))))
              env_0)))))
      (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_0
                                              (|#%name|
                                               loop
                                               (lambda (args_1 count_0)
                                                 (begin
                                                   (if (begin-unsafe
                                                        (null?
                                                         (unwrap args_1)))
                                                     (arithmetic-shift
                                                      1
                                                      count_0)
                                                     (if (begin-unsafe
                                                          (pair?
                                                           (unwrap args_1)))
                                                       (let ((app_0
                                                              (wrap-cdr
                                                               args_1)))
                                                         (loop_0
                                                          app_0
                                                          (add1 count_0)))
                                                       (bitwise-xor
                                                        -1
                                                        (sub1
                                                         (arithmetic-shift
                                                          1
                                                          count_0))))))))))
                                            (loop_0 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 (begin-unsafe (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
       (|#%name|
        body->expr
        (lambda (body_0)
          (begin
            (if (if (begin-unsafe (pair? (unwrap body_0)))
                  (let ((v_1 (wrap-cdr body_0)))
                    (begin-unsafe (null? (unwrap v_1))))
                  #f)
              (wrap-car body_0)
              (list* 'begin body_0))))))
      (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_0 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
                                         (begin-unsafe (null? (unwrap lst_0))))
                                      (let ((v_2
                                             (if (begin-unsafe
                                                  (pair? (unwrap lst_0)))
                                               (wrap-car lst_0)
                                               lst_0)))
                                        (let ((rest_0
                                               (if (begin-unsafe
                                                    (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
                                         (begin-unsafe (null? (unwrap lst_0))))
                                      (let ((v_2
                                             (if (begin-unsafe
                                                  (pair? (unwrap lst_0)))
                                               (wrap-car lst_0)
                                               lst_0)))
                                        (let ((rest_0
                                               (if (begin-unsafe
                                                    (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_0
                                                         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? 'begin-unsafe 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)))
                                                        (begin-unsafe
                                                         (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)))
                                                                (begin-unsafe
                                                                 (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)))
                                                (begin-unsafe
                                                 (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)))
                                                        (begin-unsafe
                                                         (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 (begin-unsafe (null? (unwrap lst_0))))
                        (let ((v_1
                               (if (begin-unsafe (pair? (unwrap lst_0)))
                                 (wrap-car lst_0)
                                 lst_0)))
                          (let ((rest_0
                                 (if (begin-unsafe (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
                                                 (begin-unsafe
                                                  (null? (unwrap lst_0))))
                                              (let ((v_2
                                                     (if (begin-unsafe
                                                          (pair?
                                                           (unwrap lst_0)))
                                                       (wrap-car lst_0)
                                                       lst_0)))
                                                (let ((rest_0
                                                       (if (begin-unsafe
                                                            (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)))
                                                                              (begin-unsafe
                                                                               (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
                                                   (begin-unsafe
                                                    (null? (unwrap lst_0))))
                                                (let ((v_2
                                                       (if (begin-unsafe
                                                            (pair?
                                                             (unwrap lst_0)))
                                                         (wrap-car lst_0)
                                                         lst_0)))
                                                  (let ((rest_0
                                                         (if (begin-unsafe
                                                              (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_0
                                                       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
       (|#%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)))))))
      (convert-mode-called_0
       (|#%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)))))))
      (convert-mode-box-mutables?_0
       (|#%name|
        convert-mode-box-mutables?
        (lambda (cm_0)
          (begin
            (if (convert-mode? cm_0)
              (not (convert-mode-no-more-conversions? cm_0))
              #t)))))
      (convert-mode-need-lift?_0
       (|#%name|
        convert-mode-need-lift?
        (lambda (cm_0)
          (begin
            (if (convert-mode? cm_0)
              (convert-mode-lift? cm_0)
              (eq? 'lift (cdr cm_0)))))))
      (no-lifts_0 '(0))
      (no-lifts?_0
       (|#%name| no-lifts? (lambda (v_1) (begin (zero? (car v_1))))))
      (lifts->datum_0
       (|#%name|
        lifts->datum
        (lambda (v_1) (begin (list->vector (reverse$1 (cdr v_1)))))))
      (add-lift_0
       (|#%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))))))))))
      (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
       (|#%name|
        record-size!
        (lambda (v_1 sizes_0 size_0)
          (begin (begin (hash-set! sizes_0 v_1 size_0) size_0)))))
      (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-unsafe
                      (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
                                         (begin-unsafe (null? (unwrap lst_0))))
                                      (let ((v_2
                                             (if (begin-unsafe
                                                  (pair? (unwrap lst_0)))
                                               (wrap-car lst_0)
                                               lst_0)))
                                        (let ((rest_0
                                               (if (begin-unsafe
                                                    (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
                                                 (begin-unsafe
                                                  (null? (unwrap lst_0))))
                                              (let ((v_2
                                                     (if (begin-unsafe
                                                          (pair?
                                                           (unwrap lst_0)))
                                                       (wrap-car lst_0)
                                                       lst_0)))
                                                (let ((rest_0
                                                       (if (begin-unsafe
                                                            (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-unsafe
                       (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? 'begin-unsafe 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)))
                                                        (begin-unsafe
                                                         (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)))
                                                                (begin-unsafe
                                                                 (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)))
                                                (begin-unsafe
                                                 (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)))
                                                        (begin-unsafe
                                                         (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 (begin-unsafe (null? (unwrap lst_0))))
                        (let ((v_1
                               (if (begin-unsafe (pair? (unwrap lst_0)))
                                 (wrap-car lst_0)
                                 lst_0)))
                          (let ((rest_0
                                 (if (begin-unsafe (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
                                                 (begin-unsafe
                                                  (null? (unwrap lst_0))))
                                              (let ((v_2
                                                     (if (begin-unsafe
                                                          (pair?
                                                           (unwrap lst_0)))
                                                       (wrap-car lst_0)
                                                       lst_0)))
                                                (let ((rest_0
                                                       (if (begin-unsafe
                                                            (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)))
                                                                              (begin-unsafe
                                                                               (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
                                                           (begin-unsafe
                                                            (null?
                                                             (unwrap lst_0))))
                                                        (let ((v_2
                                                               (if (begin-unsafe
                                                                    (pair?
                                                                     (unwrap
                                                                      lst_0)))
                                                                 (wrap-car
                                                                  lst_0)
                                                                 lst_0)))
                                                          (let ((rest_0
                                                                 (if (begin-unsafe
                                                                      (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
      (let ((app_0 (continuation-mark-set-first #f parameterization-key)))
        (extend-parameterization app_0 gensym-counter (box 0)))
      (top_0)))))
(define xify
  (lambda (e_0)
    (letrec*
     ((xify_0
       (|#%name|
        xify
        (lambda (e_1 env_0)
          (begin
            (reannotate
             e_1
             (let ((hd_0
                    (let ((p_0 (unwrap e_1)))
                      (if (pair? p_0) (unwrap (car p_0)) #f))))
               (if (if (eq? 'lambda hd_0)
                     (let ((a_0 (cdr (unwrap e_1))))
                       (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
                     #f)
                 (call-with-values
                  (lambda ()
                    (let ((d_0 (cdr (unwrap e_1))))
                      (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_1)))) (wrap-list? a_0))
                       #f)
                   (let ((clauses_0
                          (let ((d_0 (cdr (unwrap e_1)))) (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_1))))
                           (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
                                                      (begin-unsafe
                                                       (null? (unwrap lst_0))))
                                                   (let ((v_0
                                                          (if (begin-unsafe
                                                               (pair?
                                                                (unwrap
                                                                 lst_0)))
                                                            (wrap-car lst_0)
                                                            lst_0)))
                                                     (let ((rest_0
                                                            (if (begin-unsafe
                                                                 (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)))
                                                                                   (begin-unsafe
                                                                                    (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_1))))
                          (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
                                                   (begin-unsafe
                                                    (null? (unwrap lst_0))))
                                                (let ((v_0
                                                       (if (begin-unsafe
                                                            (pair?
                                                             (unwrap lst_0)))
                                                         (wrap-car lst_0)
                                                         lst_0)))
                                                  (let ((rest_0
                                                         (if (begin-unsafe
                                                              (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_1))))
                             (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
                                                        (begin-unsafe
                                                         (null?
                                                          (unwrap lst_0))))
                                                     (let ((v_0
                                                            (if (begin-unsafe
                                                                 (pair?
                                                                  (unwrap
                                                                   lst_0)))
                                                              (wrap-car lst_0)
                                                              lst_0)))
                                                       (let ((rest_0
                                                              (if (begin-unsafe
                                                                   (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)))
                                                                                     (begin-unsafe
                                                                                      (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_1))))
                            (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
                                                     (begin-unsafe
                                                      (null? (unwrap lst_0))))
                                                  (let ((v_0
                                                         (if (begin-unsafe
                                                              (pair?
                                                               (unwrap lst_0)))
                                                           (wrap-car lst_0)
                                                           lst_0)))
                                                    (let ((rest_0
                                                           (if (begin-unsafe
                                                                (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_1))))
                               (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
                                                          (begin-unsafe
                                                           (null?
                                                            (unwrap lst_0))))
                                                       (let ((v_0
                                                              (if (begin-unsafe
                                                                   (pair?
                                                                    (unwrap
                                                                     lst_0)))
                                                                (wrap-car
                                                                 lst_0)
                                                                lst_0)))
                                                         (let ((rest_0
                                                                (if (begin-unsafe
                                                                     (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)))
                                                                                       (begin-unsafe
                                                                                        (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_1))))
                              (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
                                                       (begin-unsafe
                                                        (null?
                                                         (unwrap lst_0))))
                                                    (let ((v_0
                                                           (if (begin-unsafe
                                                                (pair?
                                                                 (unwrap
                                                                  lst_0)))
                                                             (wrap-car lst_0)
                                                             lst_0)))
                                                      (let ((rest_0
                                                             (if (begin-unsafe
                                                                  (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_1))))
                                 (let ((p_0 (unwrap a_0)))
                                   (if (pair? p_0)
                                     (let ((a_1 (cdr p_0)))
                                       (begin-unsafe
                                        (let ((app_0 (unwrap '())))
                                          (eq? app_0 (unwrap a_1)))))
                                     #f)))
                               #f)
                           (let ((v_0
                                  (let ((d_0 (cdr (unwrap e_1))))
                                    (let ((a_0 (car (unwrap d_0)))) a_0))))
                             e_1)
                           (if (if (eq? 'begin hd_0) #t #f)
                             (let ((body_0
                                    (let ((d_0 (cdr (unwrap e_1)))) d_0)))
                               (list* 'begin (xify-body_0 body_0 env_0)))
                             (if (if (eq? 'if hd_0)
                                   (let ((a_0 (cdr (unwrap e_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)))
                                                       (begin-unsafe
                                                        (let ((app_0
                                                               (unwrap '())))
                                                          (eq?
                                                           app_0
                                                           (unwrap a_3)))))
                                                     #f)))
                                               #f)))
                                         #f)))
                                   #f)
                               (call-with-values
                                (lambda ()
                                  (let ((d_0 (cdr (unwrap e_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 (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_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)))
                                                               (begin-unsafe
                                                                (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_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 (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_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)))
                                                     (begin-unsafe
                                                      (let ((app_0
                                                             (unwrap '())))
                                                        (eq?
                                                         app_0
                                                         (unwrap a_2)))))
                                                   #f)))
                                             #f)))
                                       #f)
                                   (call-with-values
                                    (lambda ()
                                      (let ((d_0 (cdr (unwrap e_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)
                                      (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_1)))
                                         (if (pair? p_0) #t #f))
                                     (xify-body_0 e_1 env_0)
                                     (let ((u-v_0 (unwrap e_1)))
                                       (if (symbol? u-v_0)
                                         (let ((x_0 (hash-ref env_0 u-v_0 #f)))
                                           (if x_0 (reannotate e_1 x_0) e_1))
                                         e_1)))))))))))))))))))
      (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 (begin-unsafe (null? (unwrap lst_0))))
                         (let ((e_1
                                (if (begin-unsafe (pair? (unwrap lst_0)))
                                  (wrap-car lst_0)
                                  lst_0)))
                           (let ((rest_0
                                  (if (begin-unsafe (pair? (unwrap lst_0)))
                                    (wrap-cdr lst_0)
                                    null)))
                             (let ((e_2 e_1))
                               (let ((fold-var_1
                                      (let ((fold-var_1
                                             (cons
                                              (xify_0 e_2 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-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-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_0 e_0 hash2610))))
(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 make-path->relative-path-elements.1
  (|#%name|
   make-path->relative-path-elements
   (lambda (who1_0 wr-dir3_0)
     (begin
       (let ((wr-dir_0
              (if (eq? wr-dir3_0 unsafe-undefined)
                (current-write-relative-directory)
                wr-dir3_0)))
         (begin
           (if who1_0
             (if (let ((or-part_0 (not wr-dir_0)))
                   (if or-part_0
                     or-part_0
                     (let ((or-part_1
                            (if (path-string? wr-dir_0)
                              (complete-path? wr-dir_0)
                              #f)))
                       (if or-part_1
                         or-part_1
                         (if (pair? wr-dir_0)
                           (if (path-string? (car wr-dir_0))
                             (if (complete-path? (car wr-dir_0))
                               (if (path-string? (cdr wr-dir_0))
                                 (complete-path? (cdr wr-dir_0))
                                 #f)
                               #f)
                             #f)
                           #f)))))
               (void)
               (raise-argument-error
                who1_0
                (string-append
                 "(or/c (and/c path-string? complete-path?)\n"
                 "      (cons/c (and/c path-string? complete-path?)\n"
                 "              (and/c path-string? complete-path?))\n"
                 "      #f)")
                wr-dir_0))
             (void))
           (if (not wr-dir_0)
             (lambda (v_0) #f)
             (let ((exploded-base-dir_0 'not-ready))
               (let ((exploded-wrt-rel-dir_0 'not-ready))
                 (lambda (v_0)
                   (begin
                     (if (if (eq? exploded-base-dir_0 'not-ready)
                           (path? v_0)
                           #f)
                       (let ((wrt-dir_0
                              (if wr-dir_0
                                (if (pair? wr-dir_0) (car wr-dir_0) wr-dir_0)
                                #f)))
                         (let ((exploded-wrt-dir_0 (explode-path wrt-dir_0)))
                           (let ((base-dir_0
                                  (if wr-dir_0
                                    (if (pair? wr-dir_0)
                                      (cdr wr-dir_0)
                                      wr-dir_0)
                                    #f)))
                             (begin
                               (set! exploded-base-dir_0
                                 (if base-dir_0 (explode-path base-dir_0) #f))
                               (set! exploded-wrt-rel-dir_0
                                 (if (eq? base-dir_0 wrt-dir_0)
                                   '()
                                   (let ((exploded-wrt-dir_1
                                          (explode-path wrt-dir_0)))
                                     (let ((base-len_0
                                            (length exploded-base-dir_0)))
                                       (begin
                                         (if who1_0
                                           (if (if (>=
                                                    (length exploded-wrt-dir_1)
                                                    base-len_0)
                                                 (let ((lst_0
                                                        exploded-base-dir_0))
                                                   (begin
                                                     (letrec*
                                                      ((for-loop_0
                                                        (|#%name|
                                                         for-loop
                                                         (lambda (result_0
                                                                  lst_1
                                                                  lst_2)
                                                           (begin
                                                             (if (if (pair?
                                                                      lst_1)
                                                                   (pair?
                                                                    lst_2)
                                                                   #f)
                                                               (let ((a_0
                                                                      (unsafe-car
                                                                       lst_1)))
                                                                 (let ((rest_0
                                                                        (unsafe-cdr
                                                                         lst_1)))
                                                                   (let ((b_0
                                                                          (unsafe-car
                                                                           lst_2)))
                                                                     (let ((rest_1
                                                                            (unsafe-cdr
                                                                             lst_2)))
                                                                       (let ((result_1
                                                                              (let ((result_1
                                                                                     (equal?
                                                                                      a_0
                                                                                      b_0)))
                                                                                (values
                                                                                 result_1))))
                                                                         (if (if (not
                                                                                  (let ((x_0
                                                                                         (list
                                                                                          a_0)))
                                                                                    (not
                                                                                     result_1)))
                                                                               (if (not
                                                                                    (let ((x_0
                                                                                           (list
                                                                                            b_0)))
                                                                                      (not
                                                                                       result_1)))
                                                                                 #t
                                                                                 #f)
                                                                               #f)
                                                                           (for-loop_0
                                                                            result_1
                                                                            rest_0
                                                                            rest_1)
                                                                           result_1))))))
                                                               result_0))))))
                                                      (for-loop_0
                                                       #t
                                                       exploded-wrt-dir_1
                                                       lst_0))))
                                                 #f)
                                             (void)
                                             (raise-arguments-error
                                              who1_0
                                              "relative-directory pair's first path does not extend second path"
                                              "first path"
                                              wrt-dir_0
                                              "second path"
                                              base-dir_0))
                                           (void))
                                         (list-tail
                                          exploded-wrt-dir_1
                                          base-len_0))))))))))
                       (void))
                     (if exploded-base-dir_0
                       (if (path? v_0)
                         (let ((exploded_0 (explode-path v_0)))
                           (if (let ((lst_0 exploded-base-dir_0))
                                 (begin
                                   (letrec*
                                    ((for-loop_0
                                      (|#%name|
                                       for-loop
                                       (lambda (result_0 lst_1 lst_2)
                                         (begin
                                           (if (if (pair? lst_1)
                                                 (pair? lst_2)
                                                 #f)
                                             (let ((base-p_0
                                                    (unsafe-car lst_1)))
                                               (let ((rest_0
                                                      (unsafe-cdr lst_1)))
                                                 (let ((p_0
                                                        (unsafe-car lst_2)))
                                                   (let ((rest_1
                                                          (unsafe-cdr lst_2)))
                                                     (let ((result_1
                                                            (let ((result_1
                                                                   (equal?
                                                                    base-p_0
                                                                    p_0)))
                                                              (values
                                                               result_1))))
                                                       (if (if (not
                                                                (let ((x_0
                                                                       (list
                                                                        base-p_0)))
                                                                  (not
                                                                   result_1)))
                                                             (if (not
                                                                  (let ((x_0
                                                                         (list
                                                                          p_0)))
                                                                    (not
                                                                     result_1)))
                                                               #t
                                                               #f)
                                                             #f)
                                                         (for-loop_0
                                                          result_1
                                                          rest_0
                                                          rest_1)
                                                         result_1))))))
                                             result_0))))))
                                    (for-loop_0 #t lst_0 exploded_0))))
                             (if (let ((app_0 (length exploded_0)))
                                   (>= app_0 (length exploded-base-dir_0)))
                               (letrec*
                                ((loop_0
                                  (|#%name|
                                   loop
                                   (lambda (exploded-wrt-rel-dir_1 rel_0)
                                     (begin
                                       (if (null? exploded-wrt-rel-dir_1)
                                         (reverse$1
                                          (begin
                                            (letrec*
                                             ((for-loop_0
                                               (|#%name|
                                                for-loop
                                                (lambda (fold-var_0 lst_0)
                                                  (begin
                                                    (if (pair? lst_0)
                                                      (let ((p_0
                                                             (unsafe-car
                                                              lst_0)))
                                                        (let ((rest_0
                                                               (unsafe-cdr
                                                                lst_0)))
                                                          (let ((fold-var_1
                                                                 (let ((fold-var_1
                                                                        (cons
                                                                         (if (path?
                                                                              p_0)
                                                                           (path-element->bytes
                                                                            p_0)
                                                                           p_0)
                                                                         fold-var_0)))
                                                                   (values
                                                                    fold-var_1))))
                                                            (for-loop_0
                                                             fold-var_1
                                                             rest_0))))
                                                      fold-var_0))))))
                                             (for-loop_0 null rel_0))))
                                         (if (if (pair? rel_0)
                                               (let ((app_0 (car rel_0)))
                                                 (equal?
                                                  app_0
                                                  (car
                                                   exploded-wrt-rel-dir_1)))
                                               #f)
                                           (let ((app_0
                                                  (cdr
                                                   exploded-wrt-rel-dir_1)))
                                             (loop_0 app_0 (cdr rel_0)))
                                           (let ((app_0
                                                  (reverse$1
                                                   (begin
                                                     (letrec*
                                                      ((for-loop_0
                                                        (|#%name|
                                                         for-loop
                                                         (lambda (fold-var_0
                                                                  lst_0)
                                                           (begin
                                                             (if (pair? lst_0)
                                                               (let ((p_0
                                                                      (unsafe-car
                                                                       lst_0)))
                                                                 (let ((rest_0
                                                                        (unsafe-cdr
                                                                         lst_0)))
                                                                   (let ((fold-var_1
                                                                          (cons
                                                                           'up
                                                                           fold-var_0)))
                                                                     (let ((fold-var_2
                                                                            (values
                                                                             fold-var_1)))
                                                                       (for-loop_0
                                                                        fold-var_2
                                                                        rest_0)))))
                                                               fold-var_0))))))
                                                      (for-loop_0
                                                       null
                                                       exploded-wrt-rel-dir_1))))))
                                             (append
                                              app_0
                                              (reverse$1
                                               (begin
                                                 (letrec*
                                                  ((for-loop_0
                                                    (|#%name|
                                                     for-loop
                                                     (lambda (fold-var_0 lst_0)
                                                       (begin
                                                         (if (pair? lst_0)
                                                           (let ((p_0
                                                                  (unsafe-car
                                                                   lst_0)))
                                                             (let ((rest_0
                                                                    (unsafe-cdr
                                                                     lst_0)))
                                                               (let ((fold-var_1
                                                                      (let ((fold-var_1
                                                                             (cons
                                                                              (if (path?
                                                                                   p_0)
                                                                                (path-element->bytes
                                                                                 p_0)
                                                                                p_0)
                                                                              fold-var_0)))
                                                                        (values
                                                                         fold-var_1))))
                                                                 (for-loop_0
                                                                  fold-var_1
                                                                  rest_0))))
                                                           fold-var_0))))))
                                                  (for-loop_0
                                                   null
                                                   rel_0)))))))))))))
                                (let ((app_0 exploded-wrt-rel-dir_0))
                                  (loop_0
                                   app_0
                                   (list-tail
                                    exploded_0
                                    (length exploded-base-dir_0)))))
                               #f)
                             #f))
                         #f)
                       #f))))))))))))
(define 1/write-byte
  (|#%name|
   write-byte
   (lambda (byte_0 out_0) (begin (write-byte byte_0 out_0)))))
(define 1/write-bytes
  (let ((write-bytes_0
         (|#%name|
          write-bytes
          (lambda (bstr3_0 out4_0 start-pos1_0 end-pos2_0)
            (begin
              (let ((end-pos_0
                     (if (eq? end-pos2_0 unsafe-undefined)
                       (unsafe-bytes-length bstr3_0)
                       end-pos2_0)))
                (write-bytes bstr3_0 out4_0 start-pos1_0 end-pos_0)))))))
    (|#%name|
     write-bytes
     (case-lambda
      ((bstr_0 out_0) (begin (write-bytes_0 bstr_0 out_0 0 unsafe-undefined)))
      ((bstr_0 out_0 start-pos_0 end-pos2_0)
       (write-bytes_0 bstr_0 out_0 start-pos_0 end-pos2_0))
      ((bstr_0 out_0 start-pos1_0)
       (write-bytes_0 bstr_0 out_0 start-pos1_0 unsafe-undefined))))))
(define fasl-graph-def-type 1)
(define fasl-graph-ref-type 2)
(define fasl-false-type 3)
(define fasl-true-type 4)
(define fasl-null-type 5)
(define fasl-void-type 6)
(define fasl-eof-type 7)
(define fasl-integer-type 8)
(define fasl-flonum-type 9)
(define fasl-single-flonum-type 10)
(define fasl-rational-type 11)
(define fasl-complex-type 12)
(define fasl-char-type 13)
(define fasl-symbol-type 14)
(define fasl-unreadable-symbol-type 15)
(define fasl-uninterned-symbol-type 16)
(define fasl-keyword-type 17)
(define fasl-string-type 18)
(define fasl-immutable-string-type 19)
(define fasl-bytes-type 20)
(define fasl-immutable-bytes-type 21)
(define fasl-path-type 22)
(define fasl-relative-path-type 23)
(define fasl-pregexp-type 24)
(define fasl-regexp-type 25)
(define fasl-byte-pregexp-type 26)
(define fasl-byte-regexp-type 27)
(define fasl-list-type 28)
(define fasl-list*-type 29)
(define fasl-pair-type 30)
(define fasl-vector-type 31)
(define fasl-immutable-vector-type 32)
(define fasl-box-type 33)
(define fasl-immutable-box-type 34)
(define fasl-prefab-type 35)
(define fasl-hash-type 36)
(define fasl-immutable-hash-type 37)
(define fasl-srcloc-type 38)
(define fasl-extflonum-type 39)
(define fasl-correlated-type 40)
(define fasl-undefined-type 41)
(define fasl-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
  (|#%name|
   s-exp->fasl
   (lambda (external-lift?7_0
            handle-fail6_0
            keep-mutable?5_0
            skip-prefix?8_0
            v14_0
            orig-o13_0)
     (begin
       (begin
         (if orig-o13_0
           (if (output-port? orig-o13_0)
             (void)
             (raise-argument-error
              's-exp->fasl
              "(or/c output-port? #f)"
              orig-o13_0))
           (void))
         (begin
           (if handle-fail6_0
             (if (if (procedure? handle-fail6_0)
                   (procedure-arity-includes? handle-fail6_0 1)
                   #f)
               (void)
               (raise-argument-error
                's-exp->fasl
                "(or/c (procedure-arity-includes/c 1) #f)"
                handle-fail6_0))
             (void))
           (begin
             (if external-lift?7_0
               (if (if (procedure? external-lift?7_0)
                     (procedure-arity-includes? external-lift?7_0 1)
                     #f)
                 (void)
                 (raise-argument-error
                  's-exp->fasl
                  "(or/c (procedure-arity-includes/c 1) #f)"
                  external-lift?7_0))
               (void))
             (let ((o_0 (if orig-o13_0 orig-o13_0 (open-output-bytes))))
               (let ((shared_0 (make-hasheq)))
                 (let ((external-lift_0
                        (if external-lift?7_0 (make-hasheq) #f)))
                   (let ((shared-counter_0 0))
                     (begin
                       (letrec*
                        ((loop_0
                          (|#%name|
                           loop
                           (lambda (v_0)
                             (begin
                               (if (if external-lift_0
                                     (hash-ref external-lift_0 v_0 #f)
                                     #f)
                                 (void)
                                 (if (if external-lift?7_0
                                       (|#%app| external-lift?7_0 v_0)
                                       #f)
                                   (begin
                                     (hash-set! external-lift_0 v_0 #t)
                                     (set! shared-counter_0
                                       (add1 shared-counter_0))
                                     (hash-set!
                                      shared_0
                                      v_0
                                      (- shared-counter_0)))
                                   (if (let ((or-part_0 (symbol? v_0)))
                                         (if or-part_0
                                           or-part_0
                                           (let ((or-part_1 (keyword? v_0)))
                                             (if or-part_1
                                               or-part_1
                                               (let ((or-part_2 (string? v_0)))
                                                 (if or-part_2
                                                   or-part_2
                                                   (let ((or-part_3
                                                          (bytes? v_0)))
                                                     (if or-part_3
                                                       or-part_3
                                                       (path? v_0)))))))))
                                     (begin-unsafe
                                      (do-hash-update
                                       'hash-update!
                                       #t
                                       hash-set!
                                       shared_0
                                       v_0
                                       add1
                                       0))
                                     (if (pair? v_0)
                                       (begin
                                         (loop_0 (car v_0))
                                         (loop_0 (cdr v_0)))
                                       (if (vector? v_0)
                                         (begin
                                           (call-with-values
                                            (lambda ()
                                              (begin
                                                (check-vector v_0)
                                                (values
                                                 v_0
                                                 (unsafe-vector-length v_0))))
                                            (case-lambda
                                             ((vec_0 len_0)
                                              (begin
                                                #f
                                                (letrec*
                                                 ((for-loop_0
                                                   (|#%name|
                                                    for-loop
                                                    (lambda (pos_0)
                                                      (begin
                                                        (if (unsafe-fx<
                                                             pos_0
                                                             len_0)
                                                          (let ((e_0
                                                                 (unsafe-vector-ref
                                                                  vec_0
                                                                  pos_0)))
                                                            (begin
                                                              (loop_0 e_0)
                                                              (for-loop_0
                                                               (unsafe-fx+
                                                                1
                                                                pos_0))))
                                                          (values)))))))
                                                 (for-loop_0 0))))
                                             (args
                                              (raise-binding-result-arity-error
                                               2
                                               args))))
                                           (void))
                                         (if (hash? v_0)
                                           (hash-for-each
                                            v_0
                                            (lambda (k_0 v_1)
                                              (begin
                                                (loop_0 k_0)
                                                (loop_0 v_1)))
                                            #t)
                                           (if (box? v_0)
                                             (loop_0 (unbox v_0))
                                             (let ((c1_0
                                                    (prefab-struct-key v_0)))
                                               (if c1_0
                                                 (begin
                                                   (loop_0 c1_0)
                                                   (call-with-values
                                                    (lambda ()
                                                      (unsafe-normalise-inputs
                                                       unsafe-vector-length
                                                       (struct->vector v_0)
                                                       1
                                                       #f
                                                       1))
                                                    (case-lambda
                                                     ((v*_0
                                                       start*_0
                                                       stop*_0
                                                       step*_0)
                                                      (begin
                                                        #t
                                                        (letrec*
                                                         ((for-loop_0
                                                           (|#%name|
                                                            for-loop
                                                            (lambda (idx_0)
                                                              (begin
                                                                (if (unsafe-fx<
                                                                     idx_0
                                                                     stop*_0)
                                                                  (let ((e_0
                                                                         (unsafe-vector-ref
                                                                          v*_0
                                                                          idx_0)))
                                                                    (begin
                                                                      (loop_0
                                                                       e_0)
                                                                      (for-loop_0
                                                                       (unsafe-fx+
                                                                        idx_0
                                                                        1))))
                                                                  (values)))))))
                                                         (for-loop_0
                                                          start*_0))))
                                                     (args
                                                      (raise-binding-result-arity-error
                                                       4
                                                       args))))
                                                   (void))
                                                 (if (srcloc? v_0)
                                                   (loop_0 (srcloc-source v_0))
                                                   (if (begin-unsafe
                                                        (|#%app|
                                                         1/syntax?
                                                         v_0))
                                                     (begin
                                                       (loop_0
                                                        (begin-unsafe
                                                         (|#%app|
                                                          1/syntax-e
                                                          v_0)))
                                                       (loop_0
                                                        (begin-unsafe
                                                         (|#%app|
                                                          1/syntax-source
                                                          v_0)))
                                                       (let ((lst_0
                                                              (begin-unsafe
                                                               (|#%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
                                                                              k_0)
                                                                             (loop_0
                                                                              (begin-unsafe
                                                                               (|#%app|
                                                                                1/syntax-property
                                                                                v_0
                                                                                k_0))))
                                                                           (for-loop_0
                                                                            rest_0))))
                                                                     (values)))))))
                                                            (for-loop_0
                                                             lst_0))))
                                                       (void))
                                                     (void)))))))))))))))))
                        (loop_0 v14_0))
                       (let ((treat-immutable?_0
                              (|#%name|
                               treat-immutable?
                               (lambda (v_0)
                                 (begin
                                   (let ((or-part_0 (not keep-mutable?5_0)))
                                     (if or-part_0
                                       or-part_0
                                       (immutable? v_0))))))))
                         (let ((path->relative-path-elements_0
                                (make-path->relative-path-elements.1
                                 #f
                                 unsafe-undefined)))
                           (begin
                             (if skip-prefix?8_0
                               (void)
                               (1/write-bytes fasl-prefix o_0))
                             (let ((bstr_0
                                    (let ((o_1 (open-output-bytes)))
                                      (begin
                                        (letrec*
                                         ((loop_0
                                           (|#%name|
                                            loop
                                            (lambda (v_0)
                                              (begin
                                                (if (not
                                                     (eq?
                                                      (hash-ref shared_0 v_0 1)
                                                      1))
                                                  (let ((c_0
                                                         (hash-ref
                                                          shared_0
                                                          v_0)))
                                                    (if (negative? c_0)
                                                      (begin
                                                        (begin-unsafe
                                                         (write-byte 2 o_1))
                                                        (write-fasl-integer
                                                         (sub1 (- c_0))
                                                         o_1))
                                                      (let ((pos_0
                                                             shared-counter_0))
                                                        (begin
                                                          (set! shared-counter_0
                                                            (add1
                                                             shared-counter_0))
                                                          (begin-unsafe
                                                           (write-byte 1 o_1))
                                                          (write-fasl-integer
                                                           pos_0
                                                           o_1)
                                                          (hash-remove!
                                                           shared_0
                                                           v_0)
                                                          (loop_0 v_0)
                                                          (hash-set!
                                                           shared_0
                                                           v_0
                                                           (-
                                                            (add1 pos_0)))))))
                                                  (if (not v_0)
                                                    (begin-unsafe
                                                     (write-byte 3 o_1))
                                                    (if (eq? v_0 #t)
                                                      (begin-unsafe
                                                       (write-byte 4 o_1))
                                                      (if (null? v_0)
                                                        (begin-unsafe
                                                         (write-byte 5 o_1))
                                                        (if (void? v_0)
                                                          (begin-unsafe
                                                           (write-byte 6 o_1))
                                                          (if (eof-object? v_0)
                                                            (begin-unsafe
                                                             (write-byte
                                                              7
                                                              o_1))
                                                            (if (exact-integer?
                                                                 v_0)
                                                              (if (<=
                                                                   -10
                                                                   v_0
                                                                   144)
                                                                (let ((byte_0
                                                                       (+
                                                                        100
                                                                        (-
                                                                         v_0
                                                                         -10))))
                                                                  (begin-unsafe
                                                                   (write-byte
                                                                    byte_0
                                                                    o_1)))
                                                                (begin
                                                                  (begin-unsafe
                                                                   (write-byte
                                                                    8
                                                                    o_1))
                                                                  (write-fasl-integer
                                                                   v_0
                                                                   o_1)))
                                                              (if (flonum? v_0)
                                                                (begin
                                                                  (begin-unsafe
                                                                   (write-byte
                                                                    9
                                                                    o_1))
                                                                  (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_1))
                                                                (if (single-flonum?
                                                                     v_0)
                                                                  (begin
                                                                    (begin-unsafe
                                                                     (write-byte
                                                                      10
                                                                      o_1))
                                                                    (1/write-bytes
                                                                     (if (eqv?
                                                                          v_0
                                                                          (real->single-flonum
                                                                           +nan.0))
                                                                       #vu8(0 0 192 127)
                                                                       (real->floating-point-bytes
                                                                        v_0
                                                                        4
                                                                        #f))
                                                                     o_1))
                                                                  (if (extflonum?
                                                                       v_0)
                                                                    (begin
                                                                      (begin-unsafe
                                                                       (write-byte
                                                                        39
                                                                        o_1))
                                                                      (let ((bstr_0
                                                                             (string->bytes/utf-8
                                                                              (format
                                                                               "~a"
                                                                               v_0))))
                                                                        (begin
                                                                          (write-fasl-integer
                                                                           (unsafe-bytes-length
                                                                            bstr_0)
                                                                           o_1)
                                                                          (1/write-bytes
                                                                           bstr_0
                                                                           o_1))))
                                                                    (if (rational?
                                                                         v_0)
                                                                      (begin
                                                                        (begin-unsafe
                                                                         (write-byte
                                                                          11
                                                                          o_1))
                                                                        (loop_0
                                                                         (numerator
                                                                          v_0))
                                                                        (loop_0
                                                                         (denominator
                                                                          v_0)))
                                                                      (if (complex?
                                                                           v_0)
                                                                        (begin
                                                                          (begin-unsafe
                                                                           (write-byte
                                                                            12
                                                                            o_1))
                                                                          (loop_0
                                                                           (real-part
                                                                            v_0))
                                                                          (loop_0
                                                                           (imag-part
                                                                            v_0)))
                                                                        (if (char?
                                                                             v_0)
                                                                          (begin
                                                                            (begin-unsafe
                                                                             (write-byte
                                                                              13
                                                                              o_1))
                                                                            (write-fasl-integer
                                                                             (char->integer
                                                                              v_0)
                                                                             o_1))
                                                                          (if (symbol?
                                                                               v_0)
                                                                            (begin
                                                                              (if (symbol-interned?
                                                                                   v_0)
                                                                                (begin-unsafe
                                                                                 (write-byte
                                                                                  14
                                                                                  o_1))
                                                                                (if (symbol-unreadable?
                                                                                     v_0)
                                                                                  (begin-unsafe
                                                                                   (write-byte
                                                                                    15
                                                                                    o_1))
                                                                                  (begin-unsafe
                                                                                   (write-byte
                                                                                    16
                                                                                    o_1))))
                                                                              (let ((bstr_0
                                                                                     (string->bytes/utf-8
                                                                                      (symbol->string
                                                                                       v_0))))
                                                                                (begin
                                                                                  (write-fasl-integer
                                                                                   (unsafe-bytes-length
                                                                                    bstr_0)
                                                                                   o_1)
                                                                                  (1/write-bytes
                                                                                   bstr_0
                                                                                   o_1))))
                                                                            (if (keyword?
                                                                                 v_0)
                                                                              (begin
                                                                                (begin-unsafe
                                                                                 (write-byte
                                                                                  17
                                                                                  o_1))
                                                                                (let ((bstr_0
                                                                                       (string->bytes/utf-8
                                                                                        (keyword->string
                                                                                         v_0))))
                                                                                  (begin
                                                                                    (write-fasl-integer
                                                                                     (unsafe-bytes-length
                                                                                      bstr_0)
                                                                                     o_1)
                                                                                    (1/write-bytes
                                                                                     bstr_0
                                                                                     o_1))))
                                                                              (if (string?
                                                                                   v_0)
                                                                                (begin
                                                                                  (write-fasl-integer
                                                                                   (if (treat-immutable?_0
                                                                                        v_0)
                                                                                     19
                                                                                     18)
                                                                                   o_1)
                                                                                  (write-fasl-string
                                                                                   v_0
                                                                                   o_1))
                                                                                (if (bytes?
                                                                                     v_0)
                                                                                  (begin
                                                                                    (write-fasl-integer
                                                                                     (if (treat-immutable?_0
                                                                                          v_0)
                                                                                       21
                                                                                       20)
                                                                                     o_1)
                                                                                    (write-fasl-bytes
                                                                                     v_0
                                                                                     o_1))
                                                                                  (if (path-for-some-system?
                                                                                       v_0)
                                                                                    (let ((rel-elems_0
                                                                                           (|#%app|
                                                                                            path->relative-path-elements_0
                                                                                            v_0)))
                                                                                      (if rel-elems_0
                                                                                        (begin
                                                                                          (begin-unsafe
                                                                                           (write-byte
                                                                                            23
                                                                                            o_1))
                                                                                          (loop_0
                                                                                           rel-elems_0))
                                                                                        (begin
                                                                                          (begin-unsafe
                                                                                           (write-byte
                                                                                            22
                                                                                            o_1))
                                                                                          (write-fasl-bytes
                                                                                           (path->bytes
                                                                                            v_0)
                                                                                           o_1)
                                                                                          (loop_0
                                                                                           (path-convention-type
                                                                                            v_0)))))
                                                                                    (if (if (srcloc?
                                                                                             v_0)
                                                                                          (let ((src_0
                                                                                                 (srcloc-source
                                                                                                  v_0)))
                                                                                            (let ((or-part_0
                                                                                                   (not
                                                                                                    src_0)))
                                                                                              (if or-part_0
                                                                                                or-part_0
                                                                                                (let ((or-part_1
                                                                                                       (path-for-some-system?
                                                                                                        src_0)))
                                                                                                  (if or-part_1
                                                                                                    or-part_1
                                                                                                    (let ((or-part_2
                                                                                                           (string?
                                                                                                            src_0)))
                                                                                                      (if or-part_2
                                                                                                        or-part_2
                                                                                                        (let ((or-part_3
                                                                                                               (bytes?
                                                                                                                src_0)))
                                                                                                          (if or-part_3
                                                                                                            or-part_3
                                                                                                            (symbol?
                                                                                                             src_0))))))))))
                                                                                          #f)
                                                                                      (let ((src_0
                                                                                             (srcloc-source
                                                                                              v_0)))
                                                                                        (let ((new-src_0
                                                                                               (if (if (path?
                                                                                                        src_0)
                                                                                                     (not
                                                                                                      (|#%app|
                                                                                                       path->relative-path-elements_0
                                                                                                       src_0))
                                                                                                     #f)
                                                                                                 (truncate-path
                                                                                                  src_0)
                                                                                                 src_0)))
                                                                                          (begin
                                                                                            (write-fasl-integer
                                                                                             38
                                                                                             o_1)
                                                                                            (loop_0
                                                                                             new-src_0)
                                                                                            (loop_0
                                                                                             (srcloc-line
                                                                                              v_0))
                                                                                            (loop_0
                                                                                             (srcloc-column
                                                                                              v_0))
                                                                                            (loop_0
                                                                                             (srcloc-position
                                                                                              v_0))
                                                                                            (loop_0
                                                                                             (srcloc-span
                                                                                              v_0)))))
                                                                                      (if (pair?
                                                                                           v_0)
                                                                                        (if (pair?
                                                                                             (cdr
                                                                                              v_0))
                                                                                          (call-with-values
                                                                                           (lambda ()
                                                                                             (letrec*
                                                                                              ((loop_1
                                                                                                (|#%name|
                                                                                                 loop
                                                                                                 (lambda (v_1
                                                                                                          len_0)
                                                                                                   (begin
                                                                                                     (if (null?
                                                                                                          v_1)
                                                                                                       (values
                                                                                                        len_0
                                                                                                        #t)
                                                                                                       (if (pair?
                                                                                                            v_1)
                                                                                                         (let ((app_0
                                                                                                                (cdr
                                                                                                                 v_1)))
                                                                                                           (loop_1
                                                                                                            app_0
                                                                                                            (add1
                                                                                                             len_0)))
                                                                                                         (values
                                                                                                          len_0
                                                                                                          #f))))))))
                                                                                              (loop_1
                                                                                               v_0
                                                                                               0)))
                                                                                           (case-lambda
                                                                                            ((n_0
                                                                                              normal-list?_0)
                                                                                             (begin
                                                                                               (let ((byte_0
                                                                                                      (if normal-list?_0
                                                                                                        28
                                                                                                        29)))
                                                                                                 (begin-unsafe
                                                                                                  (write-byte
                                                                                                   byte_0
                                                                                                   o_1)))
                                                                                               (write-fasl-integer
                                                                                                n_0
                                                                                                o_1)
                                                                                               (letrec*
                                                                                                ((ploop_0
                                                                                                  (|#%name|
                                                                                                   ploop
                                                                                                   (lambda (v_1)
                                                                                                     (begin
                                                                                                       (if (pair?
                                                                                                            v_1)
                                                                                                         (begin
                                                                                                           (loop_0
                                                                                                            (car
                                                                                                             v_1))
                                                                                                           (ploop_0
                                                                                                            (cdr
                                                                                                             v_1)))
                                                                                                         (if normal-list?_0
                                                                                                           (void)
                                                                                                           (loop_0
                                                                                                            v_1))))))))
                                                                                                (ploop_0
                                                                                                 v_0))))
                                                                                            (args
                                                                                             (raise-binding-result-arity-error
                                                                                              2
                                                                                              args))))
                                                                                          (begin
                                                                                            (begin-unsafe
                                                                                             (write-byte
                                                                                              30
                                                                                              o_1))
                                                                                            (loop_0
                                                                                             (car
                                                                                              v_0))
                                                                                            (loop_0
                                                                                             (cdr
                                                                                              v_0))))
                                                                                        (if (vector?
                                                                                             v_0)
                                                                                          (begin
                                                                                            (let ((byte_0
                                                                                                   (if (treat-immutable?_0
                                                                                                        v_0)
                                                                                                     32
                                                                                                     31)))
                                                                                              (begin-unsafe
                                                                                               (write-byte
                                                                                                byte_0
                                                                                                o_1)))
                                                                                            (write-fasl-integer
                                                                                             (vector-length
                                                                                              v_0)
                                                                                             o_1)
                                                                                            (call-with-values
                                                                                             (lambda ()
                                                                                               (begin
                                                                                                 (check-vector
                                                                                                  v_0)
                                                                                                 (values
                                                                                                  v_0
                                                                                                  (unsafe-vector-length
                                                                                                   v_0))))
                                                                                             (case-lambda
                                                                                              ((vec_0
                                                                                                len_0)
                                                                                               (begin
                                                                                                 #f
                                                                                                 (letrec*
                                                                                                  ((for-loop_0
                                                                                                    (|#%name|
                                                                                                     for-loop
                                                                                                     (lambda (pos_0)
                                                                                                       (begin
                                                                                                         (if (unsafe-fx<
                                                                                                              pos_0
                                                                                                              len_0)
                                                                                                           (let ((e_0
                                                                                                                  (unsafe-vector-ref
                                                                                                                   vec_0
                                                                                                                   pos_0)))
                                                                                                             (begin
                                                                                                               (loop_0
                                                                                                                e_0)
                                                                                                               (for-loop_0
                                                                                                                (unsafe-fx+
                                                                                                                 1
                                                                                                                 pos_0))))
                                                                                                           (values)))))))
                                                                                                  (for-loop_0
                                                                                                   0))))
                                                                                              (args
                                                                                               (raise-binding-result-arity-error
                                                                                                2
                                                                                                args))))
                                                                                            (void))
                                                                                          (if (box?
                                                                                               v_0)
                                                                                            (begin
                                                                                              (let ((byte_0
                                                                                                     (if (treat-immutable?_0
                                                                                                          v_0)
                                                                                                       34
                                                                                                       33)))
                                                                                                (begin-unsafe
                                                                                                 (write-byte
                                                                                                  byte_0
                                                                                                  o_1)))
                                                                                              (loop_0
                                                                                               (unbox
                                                                                                v_0)))
                                                                                            (let ((c2_0
                                                                                                   (prefab-struct-key
                                                                                                    v_0)))
                                                                                              (if c2_0
                                                                                                (begin
                                                                                                  (begin-unsafe
                                                                                                   (write-byte
                                                                                                    35
                                                                                                    o_1))
                                                                                                  (begin
                                                                                                    (loop_0
                                                                                                     c2_0)
                                                                                                    (let ((vec_0
                                                                                                           (struct->vector
                                                                                                            v_0)))
                                                                                                      (begin
                                                                                                        (write-fasl-integer
                                                                                                         (sub1
                                                                                                          (vector-length
                                                                                                           vec_0))
                                                                                                         o_1)
                                                                                                        (call-with-values
                                                                                                         (lambda ()
                                                                                                           (unsafe-normalise-inputs
                                                                                                            unsafe-vector-length
                                                                                                            vec_0
                                                                                                            1
                                                                                                            #f
                                                                                                            1))
                                                                                                         (case-lambda
                                                                                                          ((v*_0
                                                                                                            start*_0
                                                                                                            stop*_0
                                                                                                            step*_0)
                                                                                                           (begin
                                                                                                             #t
                                                                                                             (letrec*
                                                                                                              ((for-loop_0
                                                                                                                (|#%name|
                                                                                                                 for-loop
                                                                                                                 (lambda (idx_0)
                                                                                                                   (begin
                                                                                                                     (if (unsafe-fx<
                                                                                                                          idx_0
                                                                                                                          stop*_0)
                                                                                                                       (let ((e_0
                                                                                                                              (unsafe-vector-ref
                                                                                                                               v*_0
                                                                                                                               idx_0)))
                                                                                                                         (begin
                                                                                                                           (loop_0
                                                                                                                            e_0)
                                                                                                                           (for-loop_0
                                                                                                                            (unsafe-fx+
                                                                                                                             idx_0
                                                                                                                             1))))
                                                                                                                       (values)))))))
                                                                                                              (for-loop_0
                                                                                                               start*_0))))
                                                                                                          (args
                                                                                                           (raise-binding-result-arity-error
                                                                                                            4
                                                                                                            args))))
                                                                                                        (void)))))
                                                                                                (if (hash?
                                                                                                     v_0)
                                                                                                  (begin
                                                                                                    (let ((byte_0
                                                                                                           (if (treat-immutable?_0
                                                                                                                v_0)
                                                                                                             37
                                                                                                             36)))
                                                                                                      (begin-unsafe
                                                                                                       (write-byte
                                                                                                        byte_0
                                                                                                        o_1)))
                                                                                                    (let ((byte_0
                                                                                                           (if (hash-eq?
                                                                                                                v_0)
                                                                                                             0
                                                                                                             (if (hash-eqv?
                                                                                                                  v_0)
                                                                                                               2
                                                                                                               1))))
                                                                                                      (begin-unsafe
                                                                                                       (write-byte
                                                                                                        byte_0
                                                                                                        o_1)))
                                                                                                    (write-fasl-integer
                                                                                                     (hash-count
                                                                                                      v_0)
                                                                                                     o_1)
                                                                                                    (hash-for-each
                                                                                                     v_0
                                                                                                     (lambda (k_0
                                                                                                              v_1)
                                                                                                       (begin
                                                                                                         (loop_0
                                                                                                          k_0)
                                                                                                         (loop_0
                                                                                                          v_1)))
                                                                                                     #t))
                                                                                                  (if (regexp?
                                                                                                       v_0)
                                                                                                    (begin
                                                                                                      (let ((byte_0
                                                                                                             (if (pregexp?
                                                                                                                  v_0)
                                                                                                               24
                                                                                                               25)))
                                                                                                        (begin-unsafe
                                                                                                         (write-byte
                                                                                                          byte_0
                                                                                                          o_1)))
                                                                                                      (write-fasl-string
                                                                                                       (object-name
                                                                                                        v_0)
                                                                                                       o_1))
                                                                                                    (if (byte-regexp?
                                                                                                         v_0)
                                                                                                      (begin
                                                                                                        (let ((byte_0
                                                                                                               (if (byte-pregexp?
                                                                                                                    v_0)
                                                                                                                 26
                                                                                                                 27)))
                                                                                                          (begin-unsafe
                                                                                                           (write-byte
                                                                                                            byte_0
                                                                                                            o_1)))
                                                                                                        (write-fasl-bytes
                                                                                                         (object-name
                                                                                                          v_0)
                                                                                                         o_1))
                                                                                                      (if (begin-unsafe
                                                                                                           (|#%app|
                                                                                                            1/syntax?
                                                                                                            v_0))
                                                                                                        (begin
                                                                                                          (begin-unsafe
                                                                                                           (write-byte
                                                                                                            40
                                                                                                            o_1))
                                                                                                          (loop_0
                                                                                                           (begin-unsafe
                                                                                                            (|#%app|
                                                                                                             1/syntax-e
                                                                                                             v_0)))
                                                                                                          (loop_0
                                                                                                           (let ((app_0
                                                                                                                  (begin-unsafe
                                                                                                                   (|#%app|
                                                                                                                    1/syntax-source
                                                                                                                    v_0))))
                                                                                                             (let ((app_1
                                                                                                                    (begin-unsafe
                                                                                                                     (|#%app|
                                                                                                                      1/syntax-line
                                                                                                                      v_0))))
                                                                                                               (let ((app_2
                                                                                                                      (begin-unsafe
                                                                                                                       (|#%app|
                                                                                                                        1/syntax-column
                                                                                                                        v_0))))
                                                                                                                 (let ((app_3
                                                                                                                        (begin-unsafe
                                                                                                                         (|#%app|
                                                                                                                          1/syntax-position
                                                                                                                          v_0))))
                                                                                                                   (unsafe-make-srcloc
                                                                                                                    app_0
                                                                                                                    app_1
                                                                                                                    app_2
                                                                                                                    app_3
                                                                                                                    (begin-unsafe
                                                                                                                     (|#%app|
                                                                                                                      1/syntax-span
                                                                                                                      v_0))))))))
                                                                                                          (loop_0
                                                                                                           (reverse$1
                                                                                                            (let ((lst_0
                                                                                                                   (begin-unsafe
                                                                                                                    (|#%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
                                                                                                                                              (begin-unsafe
                                                                                                                                               (|#%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)
                                                                                                          (begin-unsafe
                                                                                                           (write-byte
                                                                                                            41
                                                                                                            o_1))
                                                                                                          (if handle-fail6_0
                                                                                                            (loop_0
                                                                                                             (|#%app|
                                                                                                              handle-fail6_0
                                                                                                              v_0))
                                                                                                            (raise-arguments-error
                                                                                                             's-exp->fasl
                                                                                                             "cannot write value"
                                                                                                             "value"
                                                                                                             v_0))))))))))))))))))))))))))))))))))))
                                         (loop_0 v14_0))
                                        (get-output-bytes o_1 #t)))))
                               (begin
                                 (write-fasl-integer shared-counter_0 o_0)
                                 (write-fasl-integer
                                  (unsafe-bytes-length bstr_0)
                                  o_0)
                                 (1/write-bytes bstr_0 o_0)
                                 (if orig-o13_0
                                   (void)
                                   (get-output-bytes o_0)))))))))))))))))))
(define fasl->s-exp.1
  (|#%name|
   fasl->s-exp
   (lambda (datum-intern?16_0 external-lifts17_0 skip-prefix?18_0 orig-i22_0)
     (begin
       (let ((external-lifts_0
              (if (eq? external-lifts17_0 unsafe-undefined)
                '#()
                external-lifts17_0)))
         (let ((init-i_0
                (if (bytes? orig-i22_0)
                  (mcons orig-i22_0 0)
                  (if (input-port? orig-i22_0)
                    orig-i22_0
                    (raise-argument-error
                     'fasl->s-exp
                     "(or/c bytes? input-port?)"
                     orig-i22_0)))))
           (begin
             (if skip-prefix?18_0
               (void)
               (if (bytes=?
                    (read-bytes/exactly* fasl-prefix-length init-i_0)
                    fasl-prefix)
                 (void)
                 (read-error "unrecognized prefix")))
             (let ((shared-count_0 (read-fasl-integer* init-i_0)))
               (let ((shared_0 (make-vector shared-count_0)))
                 (begin
                   (if (if (vector? external-lifts_0)
                         (<= (vector-length external-lifts_0) shared-count_0)
                         #f)
                     (void)
                     (error
                      'fasl->s-exp
                      "external-lift vector does not match expected size"))
                   (begin
                     (call-with-values
                      (lambda ()
                        (begin
                          (check-vector external-lifts_0)
                          (values
                           external-lifts_0
                           (unsafe-vector-length external-lifts_0))))
                      (case-lambda
                       ((vec_0 len_0)
                        (let ((start_0 0))
                          (let ((vec_1 vec_0) (len_1 len_0))
                            (begin
                              #f
                              (void)
                              (letrec*
                               ((for-loop_0
                                 (|#%name|
                                  for-loop
                                  (lambda (pos_0 pos_1)
                                    (begin
                                      (if (if (unsafe-fx< pos_0 len_1) #t #f)
                                        (let ((v_0
                                               (unsafe-vector-ref
                                                vec_1
                                                pos_0)))
                                          (begin
                                            (vector-set!
                                             shared_0
                                             pos_1
                                             (vector-ref
                                              external-lifts_0
                                              pos_1))
                                            (for-loop_0
                                             (unsafe-fx+ 1 pos_0)
                                             (+ pos_1 1))))
                                        (values)))))))
                               (for-loop_0 0 start_0))))))
                       (args (raise-binding-result-arity-error 2 args))))
                     (let ((len_0 (read-fasl-integer* init-i_0)))
                       (let ((i_0
                              (if (mpair? init-i_0)
                                init-i_0
                                (let ((bstr_0
                                       (read-bytes/exactly* len_0 init-i_0)))
                                  (mcons bstr_0 0)))))
                         (let ((intern_0
                                (|#%name|
                                 intern
                                 (lambda (v_0)
                                   (begin
                                     (if datum-intern?16_0
                                       (datum-intern-literal v_0)
                                       v_0))))))
                           (letrec*
                            ((loop_0
                              (|#%name|
                               loop
                               (lambda ()
                                 (begin
                                   (let ((type_0 (read-byte/no-eof i_0)))
                                     (let ((index_0
                                            (if (fixnum? type_0)
                                              (if (if (unsafe-fx>= type_0 1)
                                                    (unsafe-fx< type_0 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
                                                        (|#%app|
                                                         read-fasl-integer
                                                         i_0)))
                                                   (let ((v_0 (loop_0)))
                                                     (begin
                                                       (if (<
                                                            pos_0
                                                            shared-count_0)
                                                         (void)
                                                         (read-error
                                                          "bad graph index"))
                                                       (vector-set!
                                                        shared_0
                                                        pos_0
                                                        v_0)
                                                       v_0)))
                                                 (if (unsafe-fx< index_0 3)
                                                   (let ((pos_0
                                                          (|#%app|
                                                           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
                                                    (|#%app|
                                                     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
                                                         (|#%app|
                                                          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
                                                    (let ((app_0 (loop_0)))
                                                      (/ app_0 (loop_0))))
                                                   (intern_0
                                                    (let ((app_0 (loop_0)))
                                                      (make-rectangular
                                                       app_0
                                                       (loop_0)))))))
                                             (if (unsafe-fx< index_0 16)
                                               (if (unsafe-fx< index_0 15)
                                                 (intern_0
                                                  (integer->char
                                                   (|#%app|
                                                    read-fasl-integer
                                                    i_0)))
                                                 (string->symbol
                                                  (|#%app|
                                                   read-fasl-string
                                                   i_0)))
                                               (if (unsafe-fx< index_0 17)
                                                 (string->unreadable-symbol
                                                  (|#%app|
                                                   read-fasl-string
                                                   i_0))
                                                 (if (unsafe-fx< index_0 18)
                                                   (string->uninterned-symbol
                                                    (|#%app|
                                                     read-fasl-string
                                                     i_0))
                                                   (if (unsafe-fx< index_0 19)
                                                     (string->keyword
                                                      (|#%app|
                                                       read-fasl-string
                                                       i_0))
                                                     (|#%app|
                                                      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
                                                (string->immutable-string
                                                 (|#%app|
                                                  read-fasl-string
                                                  i_0)))
                                               (if (unsafe-fx< index_0 22)
                                                 (read-fasl-bytes i_0)
                                                 (if (unsafe-fx< index_0 23)
                                                   (intern_0
                                                    (bytes->immutable-bytes
                                                     (read-fasl-bytes i_0)))
                                                   (let ((app_0
                                                          (read-fasl-bytes
                                                           i_0)))
                                                     (bytes->path
                                                      app_0
                                                      (loop_0))))))
                                             (if (unsafe-fx< index_0 26)
                                               (if (unsafe-fx< index_0 25)
                                                 (let ((wrt-dir_0
                                                        (let ((or-part_0
                                                               (current-load-relative-directory)))
                                                          (if or-part_0
                                                            or-part_0
                                                            (current-directory)))))
                                                   (let ((rel-elems_0
                                                          (reverse$1
                                                           (let ((lst_0
                                                                  (loop_0)))
                                                             (begin
                                                               (letrec*
                                                                ((for-loop_0
                                                                  (|#%name|
                                                                   for-loop
                                                                   (lambda (fold-var_0
                                                                            lst_1)
                                                                     (begin
                                                                       (if (pair?
                                                                            lst_1)
                                                                         (let ((p_0
                                                                                (unsafe-car
                                                                                 lst_1)))
                                                                           (let ((rest_0
                                                                                  (unsafe-cdr
                                                                                   lst_1)))
                                                                             (let ((fold-var_1
                                                                                    (let ((fold-var_1
                                                                                           (cons
                                                                                            (if (bytes?
                                                                                                 p_0)
                                                                                              (bytes->path-element
                                                                                               p_0)
                                                                                              p_0)
                                                                                            fold-var_0)))
                                                                                      (values
                                                                                       fold-var_1))))
                                                                               (for-loop_0
                                                                                fold-var_1
                                                                                rest_0))))
                                                                         fold-var_0))))))
                                                                (for-loop_0
                                                                 null
                                                                 lst_0)))))))
                                                     (if wrt-dir_0
                                                       (apply
                                                        build-path
                                                        wrt-dir_0
                                                        rel-elems_0)
                                                       (if (null? rel-elems_0)
                                                         (build-path 'same)
                                                         (apply
                                                          build-path
                                                          rel-elems_0)))))
                                                 (intern_0
                                                  (pregexp
                                                   (|#%app|
                                                    read-fasl-string
                                                    i_0))))
                                               (if (unsafe-fx< index_0 27)
                                                 (intern_0
                                                  (regexp
                                                   (|#%app|
                                                    read-fasl-string
                                                    i_0)))
                                                 (if (unsafe-fx< index_0 28)
                                                   (intern_0
                                                    (byte-pregexp
                                                     (read-fasl-bytes i_0)))
                                                   (if (unsafe-fx< index_0 29)
                                                     (intern_0
                                                      (byte-regexp
                                                       (read-fasl-bytes i_0)))
                                                     (let ((len_1
                                                            (|#%app|
                                                             read-fasl-integer
                                                             i_0)))
                                                       (reverse$1
                                                        (begin
                                                          (letrec*
                                                           ((for-loop_0
                                                             (|#%name|
                                                              for-loop
                                                              (lambda (fold-var_0
                                                                       pos_0)
                                                                (begin
                                                                  (if (<
                                                                       pos_0
                                                                       len_1)
                                                                    (let ((fold-var_1
                                                                           (let ((fold-var_1
                                                                                  (cons
                                                                                   (loop_0)
                                                                                   fold-var_0)))
                                                                             (values
                                                                              fold-var_1))))
                                                                      (for-loop_0
                                                                       fold-var_1
                                                                       (+
                                                                        pos_0
                                                                        1)))
                                                                    fold-var_0))))))
                                                           (for-loop_0
                                                            null
                                                            0))))))))))
                                           (if (unsafe-fx< index_0 35)
                                             (if (unsafe-fx< index_0 32)
                                               (if (unsafe-fx< index_0 31)
                                                 (let ((app_0 (loop_0)))
                                                   (cons app_0 (loop_0)))
                                                 (let ((len_1
                                                        (|#%app|
                                                         read-fasl-integer
                                                         i_0)))
                                                   (letrec*
                                                    ((ploop_0
                                                      (|#%name|
                                                       ploop
                                                       (lambda (len_2)
                                                         (begin
                                                           (if (zero? len_2)
                                                             (loop_0)
                                                             (let ((app_0
                                                                    (loop_0)))
                                                               (cons
                                                                app_0
                                                                (ploop_0
                                                                 (sub1
                                                                  len_2))))))))))
                                                    (ploop_0 len_1))))
                                               (if (unsafe-fx< index_0 33)
                                                 (let ((len_1
                                                        (|#%app|
                                                         read-fasl-integer
                                                         i_0)))
                                                   (let ((vec_0
                                                          (begin
                                                            (if (exact-nonnegative-integer?
                                                                 len_1)
                                                              (void)
                                                              (raise-argument-error
                                                               'for/vector
                                                               "exact-nonnegative-integer?"
                                                               len_1))
                                                            (let ((v_0
                                                                   (make-vector
                                                                    len_1
                                                                    0)))
                                                              (begin
                                                                (if (zero?
                                                                     len_1)
                                                                  (void)
                                                                  (begin
                                                                    (letrec*
                                                                     ((for-loop_0
                                                                       (|#%name|
                                                                        for-loop
                                                                        (lambda (i_1
                                                                                 pos_0)
                                                                          (begin
                                                                            (if (<
                                                                                 pos_0
                                                                                 len_1)
                                                                              (let ((i_2
                                                                                     (let ((i_2
                                                                                            (begin
                                                                                              (unsafe-vector*-set!
                                                                                               v_0
                                                                                               i_1
                                                                                               (loop_0))
                                                                                              (unsafe-fx+
                                                                                               1
                                                                                               i_1))))
                                                                                       (values
                                                                                        i_2))))
                                                                                (if (if (not
                                                                                         (let ((x_0
                                                                                                (list
                                                                                                 pos_0)))
                                                                                           (unsafe-fx=
                                                                                            i_2
                                                                                            len_1)))
                                                                                      #t
                                                                                      #f)
                                                                                  (for-loop_0
                                                                                   i_2
                                                                                   (+
                                                                                    pos_0
                                                                                    1))
                                                                                  i_2))
                                                                              i_1))))))
                                                                     (for-loop_0
                                                                      0
                                                                      0))))
                                                                v_0)))))
                                                     (if (eqv? type_0 32)
                                                       (vector->immutable-vector
                                                        vec_0)
                                                       vec_0)))
                                                 (if (unsafe-fx< index_0 34)
                                                   (box (loop_0))
                                                   (box-immutable (loop_0)))))
                                             (if (unsafe-fx< index_0 37)
                                               (if (unsafe-fx< index_0 36)
                                                 (let ((key_0 (loop_0)))
                                                   (let ((len_1
                                                          (|#%app|
                                                           read-fasl-integer
                                                           i_0)))
                                                     (apply
                                                      make-prefab-struct
                                                      key_0
                                                      (reverse$1
                                                       (begin
                                                         (letrec*
                                                          ((for-loop_0
                                                            (|#%name|
                                                             for-loop
                                                             (lambda (fold-var_0
                                                                      pos_0)
                                                               (begin
                                                                 (if (<
                                                                      pos_0
                                                                      len_1)
                                                                   (let ((fold-var_1
                                                                          (let ((fold-var_1
                                                                                 (cons
                                                                                  (loop_0)
                                                                                  fold-var_0)))
                                                                            (values
                                                                             fold-var_1))))
                                                                     (for-loop_0
                                                                      fold-var_1
                                                                      (+
                                                                       pos_0
                                                                       1)))
                                                                   fold-var_0))))))
                                                          (for-loop_0
                                                           null
                                                           0)))))))
                                                 (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_1
                                                          (|#%app|
                                                           read-fasl-integer
                                                           i_0)))
                                                     (begin
                                                       (begin
                                                         (letrec*
                                                          ((for-loop_0
                                                            (|#%name|
                                                             for-loop
                                                             (lambda (pos_0)
                                                               (begin
                                                                 (if (<
                                                                      pos_0
                                                                      len_1)
                                                                   (begin
                                                                     (let ((app_0
                                                                            (loop_0)))
                                                                       (hash-set!
                                                                        ht_0
                                                                        app_0
                                                                        (loop_0)))
                                                                     (for-loop_0
                                                                      (+
                                                                       pos_0
                                                                       1)))
                                                                   (values)))))))
                                                          (for-loop_0 0)))
                                                       (void)
                                                       ht_0))))
                                               (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_1
                                                          (|#%app|
                                                           read-fasl-integer
                                                           i_0)))
                                                     (begin
                                                       (letrec*
                                                        ((for-loop_0
                                                          (|#%name|
                                                           for-loop
                                                           (lambda (ht_1 pos_0)
                                                             (begin
                                                               (if (<
                                                                    pos_0
                                                                    len_1)
                                                                 (let ((ht_2
                                                                        (let ((ht_2
                                                                               (let ((app_0
                                                                                      (loop_0)))
                                                                                 (hash-set
                                                                                  ht_1
                                                                                  app_0
                                                                                  (loop_0)))))
                                                                          (values
                                                                           ht_2))))
                                                                   (for-loop_0
                                                                    ht_2
                                                                    (+
                                                                     pos_0
                                                                     1)))
                                                                 ht_1))))))
                                                        (for-loop_0 ht_0 0)))))
                                                 (if (unsafe-fx< index_0 39)
                                                   (let ((app_0 (loop_0)))
                                                     (let ((app_1 (loop_0)))
                                                       (let ((app_2 (loop_0)))
                                                         (let ((app_3
                                                                (loop_0)))
                                                           (unsafe-make-srcloc
                                                            app_0
                                                            app_1
                                                            app_2
                                                            app_3
                                                            (loop_0))))))
                                                   (if (unsafe-fx< index_0 40)
                                                     (let ((e_0 (loop_0)))
                                                       (let ((s_0 (loop_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)))
                                                             (begin
                                                               (letrec*
                                                                ((for-loop_0
                                                                  (|#%name|
                                                                   for-loop
                                                                   (lambda (c_1
                                                                            lst_1)
                                                                     (begin
                                                                       (if (pair?
                                                                            lst_1)
                                                                         (let ((p_0
                                                                                (unsafe-car
                                                                                 lst_1)))
                                                                           (let ((rest_0
                                                                                  (unsafe-cdr
                                                                                   lst_1)))
                                                                             (let ((c_2
                                                                                    (let ((c_2
                                                                                           (let ((k_0
                                                                                                  (car
                                                                                                   p_0)))
                                                                                             (let ((v_0
                                                                                                    (cdr
                                                                                                     p_0)))
                                                                                               (let ((k_1
                                                                                                      k_0))
                                                                                                 (begin-unsafe
                                                                                                  (|#%app|
                                                                                                   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))))))))))))))
                            (loop_0))))))))))))))))
(define write-fasl-integer
  (lambda (i_0 o_0)
    (if (<= -124 i_0 127)
      (if (negative? i_0)
        (let ((byte_0 (+ i_0 256))) (begin-unsafe (write-byte byte_0 o_0)))
        (begin-unsafe (write-byte i_0 o_0)))
      (if (<= -32768 i_0 32767)
        (begin
          (begin-unsafe (write-byte 128 o_0))
          (1/write-bytes (integer->integer-bytes i_0 2 #t #f) o_0))
        (if (<= -2147483648 i_0 2147483647)
          (begin
            (begin-unsafe (write-byte 129 o_0))
            (1/write-bytes (integer->integer-bytes i_0 4 #t #f) o_0))
          (if (<= -9223372036854775808 i_0 9223372036854775807)
            (begin
              (begin-unsafe (write-byte 130 o_0))
              (1/write-bytes (integer->integer-bytes i_0 8 #t #f) o_0))
            (begin
              (begin-unsafe (write-byte 131 o_0))
              (let ((s_0 (format "~x" i_0)))
                (begin
                  (write-fasl-integer (string-length s_0) o_0)
                  (write-string s_0 o_0))))))))))
(define write-fasl-string
  (lambda (v_0 o_0)
    (let ((bstr_0 (string->bytes/utf-8 v_0)))
      (begin
        (write-fasl-integer (unsafe-bytes-length bstr_0) o_0)
        (1/write-bytes bstr_0 o_0)))))
(define write-fasl-bytes
  (lambda (v_0 o_0)
    (begin
      (write-fasl-integer (unsafe-bytes-length v_0) o_0)
      (1/write-bytes v_0 o_0))))
(define read-error
  (lambda (s_0 . args_0)
    (apply
     raise-arguments-error
     'fasl-read
     (string-append "error parsing fasl stream;\n" " " s_0)
     args_0)))
(define read-byte/no-eof
  (lambda (i_0)
    (let ((pos_0 (unsafe-mcdr i_0)))
      (begin
        (if (fx< pos_0 (unsafe-bytes-length (unsafe-mcar i_0)))
          (void)
          (read-error "truncated stream"))
        (unsafe-set-mcdr! i_0 (fx+ pos_0 1))
        (unsafe-bytes-ref (unsafe-mcar i_0) pos_0)))))
(define read-byte/no-eof*
  (lambda (i_0)
    (if (mpair? i_0)
      (read-byte/no-eof i_0)
      (let ((b_0 (read-byte i_0)))
        (begin
          (if (eof-object? b_0) (read-error "truncated stream") (void))
          b_0)))))
(define read-bytes/exactly
  (lambda (n_0 i_0)
    (let ((pos_0 (unsafe-mcdr i_0)))
      (begin
        (if (let ((app_0 (+ pos_0 n_0)))
              (<= app_0 (unsafe-bytes-length (unsafe-mcar i_0))))
          (void)
          (read-error "truncated stream"))
        (unsafe-set-mcdr! i_0 (fx+ pos_0 n_0))
        (let ((app_0 (unsafe-mcar i_0)))
          (subbytes app_0 pos_0 (fx+ pos_0 n_0)))))))
(define read-bytes/exactly*
  (lambda (n_0 i_0)
    (if (mpair? i_0)
      (read-bytes/exactly n_0 i_0)
      (let ((bstr_0 (read-bytes n_0 i_0)))
        (begin
          (if (if (bytes? bstr_0) (= n_0 (unsafe-bytes-length bstr_0)) #f)
            (void)
            (read-error "truncated stream"))
          bstr_0)))))
(define read-fasl-integer
  (lambda (i_0)
    (let ((b_0 (read-byte/no-eof i_0)))
      (if (fx<= b_0 127)
        b_0
        (if (fx>= b_0 132)
          (fx- b_0 256)
          (if (eqv? b_0 128)
            (let ((lo_0 (read-byte/no-eof i_0)))
              (let ((hi_0 (read-byte/no-eof i_0)))
                (if (fx> hi_0 127)
                  (fxior (unsafe-fxlshift (fx+ -256 hi_0) 8) lo_0)
                  (fxior (unsafe-fxlshift hi_0 8) lo_0))))
            (if (eqv? b_0 129)
              (let ((a_0 (read-byte/no-eof i_0)))
                (let ((b_1 (read-byte/no-eof i_0)))
                  (let ((c_0 (read-byte/no-eof i_0)))
                    (let ((d_0 (read-byte/no-eof i_0)))
                      (bitwise-ior
                       a_0
                       (arithmetic-shift
                        (if (fx> d_0 127)
                          (fxior
                           (unsafe-fxlshift (fx+ -256 d_0) 16)
                           (unsafe-fxlshift c_0 8)
                           b_1)
                          (fxior
                           (unsafe-fxlshift d_0 16)
                           (unsafe-fxlshift c_0 8)
                           b_1))
                        8))))))
              (if (eqv? b_0 130)
                (integer-bytes->integer (read-bytes/exactly 8 i_0) #t #f)
                (if (eqv? b_0 131)
                  (let ((len_0 (|#%app| read-fasl-integer i_0)))
                    (let ((str_0 (|#%app| 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-integer*
  (lambda (i_0)
    (let ((b_0 (read-byte/no-eof* i_0)))
      (if (fx<= b_0 127)
        b_0
        (if (fx>= b_0 132)
          (fx- b_0 256)
          (if (eqv? b_0 128)
            (let ((lo_0 (read-byte/no-eof* i_0)))
              (let ((hi_0 (read-byte/no-eof* i_0)))
                (if (fx> hi_0 127)
                  (fxior (unsafe-fxlshift (fx+ -256 hi_0) 8) lo_0)
                  (fxior (unsafe-fxlshift hi_0 8) lo_0))))
            (if (eqv? b_0 129)
              (let ((a_0 (read-byte/no-eof* i_0)))
                (let ((b_1 (read-byte/no-eof* i_0)))
                  (let ((c_0 (read-byte/no-eof* i_0)))
                    (let ((d_0 (read-byte/no-eof* i_0)))
                      (bitwise-ior
                       a_0
                       (arithmetic-shift
                        (if (fx> d_0 127)
                          (fxior
                           (unsafe-fxlshift (fx+ -256 d_0) 16)
                           (unsafe-fxlshift c_0 8)
                           b_1)
                          (fxior
                           (unsafe-fxlshift d_0 16)
                           (unsafe-fxlshift c_0 8)
                           b_1))
                        8))))))
              (if (eqv? b_0 130)
                (integer-bytes->integer (read-bytes/exactly* 8 i_0) #t #f)
                (if (eqv? b_0 131)
                  (let ((len_0 (|#%app| read-fasl-integer i_0)))
                    (let ((str_0 (|#%app| 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 (i25_0 len24_0)
            (begin
              (let ((len_0
                     (if (eq? len24_0 unsafe-undefined)
                       (|#%app| read-fasl-integer i25_0)
                       len24_0)))
                (let ((pos_0 (unsafe-mcdr i25_0)))
                  (let ((bstr_0 (unsafe-mcar i25_0)))
                    (if (<= (+ pos_0 len_0) (unsafe-bytes-length bstr_0))
                      (begin
                        (unsafe-set-mcdr! i25_0 (fx+ pos_0 len_0))
                        (let ((s_0 (make-string len_0)))
                          (letrec*
                           ((loop_0
                             (|#%name|
                              loop
                              (lambda (i_0)
                                (begin
                                  (if (fx= i_0 len_0)
                                    s_0
                                    (let ((c_0
                                           (unsafe-bytes-ref
                                            bstr_0
                                            (fx+ i_0 pos_0))))
                                      (if (fx<= c_0 128)
                                        (begin
                                          (string-set!
                                           s_0
                                           i_0
                                           (integer->char c_0))
                                          (loop_0 (fx+ i_0 1)))
                                        (bytes->string/utf-8
                                         bstr_0
                                         #f
                                         pos_0
                                         (fx+ pos_0 len_0))))))))))
                           (loop_0 0))))
                      (let ((bstr_1 (read-bytes/exactly len_0 i25_0)))
                        (bytes->string/utf-8 bstr_1)))))))))))
    (case-lambda
     ((i_0) (read-fasl-string_0 i_0 unsafe-undefined))
     ((i_0 len24_0) (read-fasl-string_0 i_0 len24_0)))))
(define read-fasl-bytes
  (lambda (i_0)
    (let ((len_0 (|#%app| read-fasl-integer i_0)))
      (read-bytes/exactly len_0 i_0))))
(define fasl-literal?
  (lambda (q_0 need-exposed?_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)
                    #t
                    (if (bytes? q_0)
                      #t
                      (if (prefab-struct-key q_0)
                        #t
                        (if (|#%app| need-exposed?_0 q_0)
                          #t
                          (if (extflonum? q_0) #t #f))))))))))))))
(define finish_3138
  (make-struct-type-install-properties
   '(to-unfasl)
   3
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1 2)
   #f
   'to-unfasl))
(define struct:to-unfasl
  (make-record-type-descriptor*
   'to-unfasl
   #f
   (|#%nongenerative-uid| to-unfasl)
   #f
   #f
   3
   0))
(define effect_2898 (finish_3138 struct:to-unfasl))
(define to-unfasl1.1
  (|#%name|
   to-unfasl
   (record-constructor
    (make-record-constructor-descriptor struct:to-unfasl #f #f))))
(define to-unfasl?_2342
  (|#%name| to-unfasl? (record-predicate struct:to-unfasl)))
(define to-unfasl?
  (|#%name|
   to-unfasl?
   (lambda (v)
     (if (to-unfasl?_2342 v)
       #t
       ($value
        (if (impersonator? v) (to-unfasl?_2342 (impersonator-val v)) #f))))))
(define to-unfasl-bstr_2318
  (|#%name| to-unfasl-bstr (record-accessor struct:to-unfasl 0)))
(define to-unfasl-bstr
  (|#%name|
   to-unfasl-bstr
   (lambda (s)
     (if (to-unfasl?_2342 s)
       (to-unfasl-bstr_2318 s)
       ($value
        (impersonate-ref
         to-unfasl-bstr_2318
         struct:to-unfasl
         0
         s
         'to-unfasl
         'bstr))))))
(define to-unfasl-externals_2291
  (|#%name| to-unfasl-externals (record-accessor struct:to-unfasl 1)))
(define to-unfasl-externals
  (|#%name|
   to-unfasl-externals
   (lambda (s)
     (if (to-unfasl?_2342 s)
       (to-unfasl-externals_2291 s)
       ($value
        (impersonate-ref
         to-unfasl-externals_2291
         struct:to-unfasl
         1
         s
         'to-unfasl
         'externals))))))
(define to-unfasl-wrt_2425
  (|#%name| to-unfasl-wrt (record-accessor struct:to-unfasl 2)))
(define to-unfasl-wrt
  (|#%name|
   to-unfasl-wrt
   (lambda (s)
     (if (to-unfasl?_2342 s)
       (to-unfasl-wrt_2425 s)
       ($value
        (impersonate-ref
         to-unfasl-wrt_2425
         struct:to-unfasl
         2
         s
         'to-unfasl
         'wrt))))))
(define empty-literals?
  (lambda (v_0) (if (vector? v_0) (eqv? 0 (vector-length v_0)) #f)))
(define fasl-literals
  (lambda (v_0 need-exposed?_0)
    (if (empty-literals? v_0)
      v_0
      (let ((exposed_0 '()))
        (let ((cannot-fasl5_0 cannot-fasl))
          (let ((bstr_0
                 (let ((temp6_0
                        (lambda (v_1)
                          (if (|#%app| need-exposed?_0 v_1)
                            (begin (set! exposed_0 (cons v_1 exposed_0)) #t)
                            #f))))
                   (s-exp->fasl.1 temp6_0 cannot-fasl5_0 #f #t v_0 #f))))
            (if (null? exposed_0)
              bstr_0
              (cons bstr_0 (list->vector (reverse$1 exposed_0))))))))))
(define unfasl-literals/lazy
  (lambda (v_0)
    (if (empty-literals? v_0)
      v_0
      (box
       (let ((app_0 (if (pair? v_0) (car v_0) v_0)))
         (let ((app_1 (if (pair? v_0) (cdr v_0) '#())))
           (to-unfasl1.1 app_0 app_1 (current-load-relative-directory))))))))
(define force-unfasl-literals
  (lambda (b_0)
    (if (box? b_0)
      (let ((v_0 (unbox b_0)))
        (if (to-unfasl? v_0)
          (let ((new-v_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-unfasl-wrt v_0)))
                  (let ((temp7_0 (to-unfasl-bstr v_0)))
                    (let ((temp10_0 (to-unfasl-externals v_0)))
                      (let ((temp7_1 temp7_0))
                        (fasl->s-exp.1 #t temp10_0 #t temp7_1)))))))
            (letrec*
             ((loop_0
               (|#%name|
                loop
                (lambda ()
                  (begin
                    (if (unsafe-box*-cas! b_0 v_0 new-v_0)
                      new-v_0
                      (let ((v_1 (unbox b_0)))
                        (if (to-unfasl? v_1) (loop_0) v_1))))))))
             (loop_0)))
          v_0))
      b_0)))
(define cannot-fasl
  (lambda (v_0)
    (error
     'write
     "cannot marshal value that is embedded in compiled code\n  value: ~v"
     v_0)))
(define finish_2779
  (make-struct-type-install-properties
   '(node)
   5
   0
   #f
   (list (cons prop:authentic #t))
   #f
   #f
   '(0 1 2 3 4)
   #f
   'node))
(define struct:node
  (make-record-type-descriptor*
   'node
   #f
   (|#%nongenerative-uid| node)
   #f
   #f
   5
   0))
(define effect_2547 (finish_2779 struct: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 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
                   (combine
                    (node-key t_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 ((key_1 (node-key t_0)))
                (let ((new-t_0
                       (let ((val_1 (node-val t_0)))
                         (begin-unsafe
                          (combine key_1 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)))))))
          (node1.1
           key_0
           val_0
           (node-height t_0)
           (node-left t_0)
           (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
                   (combine
                    (node-key t_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 ((key_1 (node-key t_0)))
                (let ((new-t_0
                       (let ((val_0 (node-val t_0)))
                         (begin-unsafe
                          (combine key_1 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)))
                                           (combine
                                            key_1
                                            (node-val end_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
                    (combine
                     (node-key t_0)
                     (node-val t_0)
                     (combine
                      (node-key yellow_0)
                      (node-val yellow_0)
                      (combine (node-key orange_0) (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)))
         (combine
          (node-key yellow_0)
          (node-val yellow_0)
          (node-left yellow_0)
          (combine
           (node-key t_0)
           (node-val t_0)
           (node-right yellow_0)
           (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)))
                                              (begin-unsafe
                                               (combine
                                                key_2
                                                val_2
                                                B_0
                                                A_0))))))
                                     (let ((val_2 val_1) (key_2 key_1))
                                       (begin-unsafe
                                        (combine
                                         key_2
                                         val_2
                                         C_0
                                         right_0))))))))
                          (let ((val_1 val_0) (key_1 key_0))
                            (begin-unsafe
                             (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)))
                              (begin-unsafe
                               (combine key_1 val_1 left_0 right_1))))))))
                 (let ((right_1 right_0) (val_1 val_0) (key_1 key_0))
                   (begin-unsafe
                    (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 (begin-unsafe (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 (begin-unsafe (insert stack_0 i_0 v_0)))) s_0)))
(define stack-remove
  (lambda (stack_0 i_0) (begin-unsafe (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 finish_2471
  (make-struct-type-install-properties
   '(stack-info)
   5
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'stack-info))
(define struct:stack-info
  (make-record-type-descriptor*
   'stack-info
   #f
   (|#%nongenerative-uid| stack-info)
   #f
   #f
   5
   28))
(define effect_2334 (finish_2471 struct:stack-info))
(define stack-info4.1
  (|#%name|
   stack-info
   (record-constructor
    (make-record-constructor-descriptor struct:stack-info #f #f))))
(define stack-info?_2054
  (|#%name| stack-info? (record-predicate struct:stack-info)))
(define stack-info?
  (|#%name|
   stack-info?
   (lambda (v)
     (if (stack-info?_2054 v)
       #t
       ($value
        (if (impersonator? v) (stack-info?_2054 (impersonator-val v)) #f))))))
(define stack-info-capture-depth_2245
  (|#%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?_2054 s)
       (stack-info-capture-depth_2245 s)
       ($value
        (impersonate-ref
         stack-info-capture-depth_2245
         struct:stack-info
         0
         s
         'stack-info
         'capture-depth))))))
(define stack-info-closure-map_2860
  (|#%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?_2054 s)
       (stack-info-closure-map_2860 s)
       ($value
        (impersonate-ref
         stack-info-closure-map_2860
         struct:stack-info
         1
         s
         'stack-info
         'closure-map))))))
(define stack-info-use-map_2830
  (|#%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?_2054 s)
       (stack-info-use-map_2830 s)
       ($value
        (impersonate-ref
         stack-info-use-map_2830
         struct:stack-info
         2
         s
         'stack-info
         'use-map))))))
(define stack-info-local-use-map_2796
  (|#%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?_2054 s)
       (stack-info-local-use-map_2796 s)
       ($value
        (impersonate-ref
         stack-info-local-use-map_2796
         struct:stack-info
         3
         s
         'stack-info
         'local-use-map))))))
(define stack-info-non-tail-call-later?_2901
  (|#%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?_2054 s)
       (stack-info-non-tail-call-later?_2901 s)
       ($value
        (impersonate-ref
         stack-info-non-tail-call-later?_2901
         struct:stack-info
         4
         s
         'stack-info
         'non-tail-call-later?))))))
(define set-stack-info-use-map!_2735
  (|#%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?_2054 s)
       (set-stack-info-use-map!_2735 s v)
       ($value
        (impersonate-set!
         set-stack-info-use-map!_2735
         struct:stack-info
         2
         2
         s
         v
         'stack-info
         'use-map))))))
(define set-stack-info-local-use-map!_2852
  (|#%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?_2054 s)
       (set-stack-info-local-use-map!_2852 s v)
       ($value
        (impersonate-set!
         set-stack-info-local-use-map!_2852
         struct:stack-info
         3
         3
         s
         v
         'stack-info
         'local-use-map))))))
(define set-stack-info-non-tail-call-later?!_2871
  (|#%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?_2054 s)
       (set-stack-info-non-tail-call-later?!_2871 s v)
       ($value
        (impersonate-set!
         set-stack-info-non-tail-call-later?!_2871
         struct:stack-info
         4
         4
         s
         v
         'stack-info
         'non-tail-call-later?))))))
(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 finish_2360
  (make-struct-type-install-properties
   '(indirect)
   2
   0
   #f
   null
   (current-inspector)
   #f
   '(0 1)
   #f
   'indirect))
(define struct:indirect
  (make-record-type-descriptor*
   'indirect
   #f
   (|#%nongenerative-uid| indirect)
   #f
   #f
   2
   0))
(define effect_2125 (finish_2360 struct:indirect))
(define indirect1.1
  (|#%name|
   indirect
   (record-constructor
    (make-record-constructor-descriptor struct:indirect #f #f))))
(define indirect?_2680 (|#%name| indirect? (record-predicate struct:indirect)))
(define indirect?
  (|#%name|
   indirect?
   (lambda (v)
     (if (indirect?_2680 v)
       #t
       ($value
        (if (impersonator? v) (indirect?_2680 (impersonator-val v)) #f))))))
(define indirect-pos_2819
  (|#%name| indirect-pos (record-accessor struct:indirect 0)))
(define indirect-pos
  (|#%name|
   indirect-pos
   (lambda (s)
     (if (indirect?_2680 s)
       (indirect-pos_2819 s)
       ($value
        (impersonate-ref
         indirect-pos_2819
         struct:indirect
         0
         s
         'indirect
         'pos))))))
(define indirect-element_2353
  (|#%name| indirect-element (record-accessor struct:indirect 1)))
(define indirect-element
  (|#%name|
   indirect-element
   (lambda (s)
     (if (indirect?_2680 s)
       (indirect-element_2353 s)
       ($value
        (impersonate-ref
         indirect-element_2353
         struct:indirect
         1
         s
         'indirect
         'element))))))
(define finish_2373
  (make-struct-type-install-properties
   '(boxed)
   1
   0
   #f
   null
   (current-inspector)
   #f
   '(0)
   #f
   'boxed))
(define struct:boxed
  (make-record-type-descriptor*
   'boxed
   #f
   (|#%nongenerative-uid| boxed)
   #f
   #f
   1
   0))
(define effect_2970 (finish_2373 struct:boxed))
(define boxed2.1
  (|#%name|
   boxed
   (record-constructor
    (make-record-constructor-descriptor struct:boxed #f #f))))
(define boxed?_2226 (|#%name| boxed? (record-predicate struct:boxed)))
(define boxed?
  (|#%name|
   boxed?
   (lambda (v)
     (if (boxed?_2226 v)
       #t
       ($value
        (if (impersonator? v) (boxed?_2226 (impersonator-val v)) #f))))))
(define boxed-pos_2515 (|#%name| boxed-pos (record-accessor struct:boxed 0)))
(define boxed-pos
  (|#%name|
   boxed-pos
   (lambda (s)
     (if (boxed?_2226 s)
       (boxed-pos_2515 s)
       ($value
        (impersonate-ref boxed-pos_2515 struct:boxed 0 s 'boxed 'pos))))))
(define finish_2767
  (make-struct-type-install-properties
   '(boxed/check)
   0
   0
   struct:boxed
   null
   (current-inspector)
   #f
   '()
   #f
   'boxed/check))
(define struct:boxed/check
  (make-record-type-descriptor*
   'boxed/check
   struct:boxed
   (|#%nongenerative-uid| boxed/check)
   #f
   #f
   0
   0))
(define effect_2937 (finish_2767 struct:boxed/check))
(define boxed/check3.1
  (|#%name|
   boxed/check
   (record-constructor
    (make-record-constructor-descriptor struct:boxed/check #f #f))))
(define boxed/check?_2060
  (|#%name| boxed/check? (record-predicate struct:boxed/check)))
(define boxed/check?
  (|#%name|
   boxed/check?
   (lambda (v)
     (if (boxed/check?_2060 v)
       #t
       ($value
        (if (impersonator? v) (boxed/check?_2060 (impersonator-val v)) #f))))))
(define primitives hash2610)
(define strip-annotations (lambda (e_0) e_0))
(define make-internal-variable (lambda (name_0) (box unsafe-undefined)))
(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
           make-var_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! make-internal-variable make-var_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
  (lambda (linklet-e_0 serializable?_0)
    (letrec*
     ((start_0
       (|#%name|
        start
        (lambda (linklet-e_1)
          (begin
            (call-with-values
             (lambda () (compile-linklet-body_0 linklet-e_1 hash2610 0))
             (case-lambda
              ((compiled-body_0 num-body-vars_0 internal-var-syms_0)
               (vector internal-var-syms_0 num-body-vars_0 compiled-body_0))
              (args (raise-binding-result-arity-error 3 args))))))))
      (compile-linklet-body_0
       (|#%name|
        compile-linklet-body
        (lambda (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 ((vars+body_0 (let ((d_1 (cdr p_0))) d_1)))
                           (let ((args_1 args_0))
                             (values args_1 vars+body_0)))))))
                 (case-lambda
                  ((args_0 vars+body_0)
                   (call-with-values
                    (lambda ()
                      (letrec*
                       ((loop_0
                         (|#%name|
                          loop
                          (lambda (rev-create-vars_0 body_0)
                            (begin
                              (if (null? body_0)
                                (values (reverse$1 rev-create-vars_0) body_0)
                                (let ((v_1 (car body_0)))
                                  (let ((hd_1
                                         (let ((p_0 (unwrap v_1)))
                                           (if (pair? p_0)
                                             (unwrap (car p_0))
                                             #f))))
                                    (if (if (eq? 'define hd_1)
                                          (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)
                                                      (if (let ((a_2
                                                                 (car p_1)))
                                                            (let ((p_2
                                                                   (unwrap
                                                                    a_2)))
                                                              (if (pair? p_2)
                                                                (if (let ((a_3
                                                                           (car
                                                                            p_2)))
                                                                      (begin-unsafe
                                                                       (let ((app_0
                                                                              (unwrap
                                                                               'make-internal-variable)))
                                                                         (eq?
                                                                          app_0
                                                                          (unwrap
                                                                           a_3)))))
                                                                  #t
                                                                  #f)
                                                                #f)))
                                                        (let ((a_2 (cdr p_1)))
                                                          (begin-unsafe
                                                           (let ((app_0
                                                                  (unwrap
                                                                   '())))
                                                             (eq?
                                                              app_0
                                                              (unwrap a_2)))))
                                                        #f)
                                                      #f)))
                                                #f)))
                                          #f)
                                      (let ((id_0
                                             (let ((d_0 (cdr (unwrap v_1))))
                                               (let ((a_0 (car (unwrap d_0))))
                                                 a_0))))
                                        (let ((app_0
                                               (cons
                                                (car body_0)
                                                rev-create-vars_0)))
                                          (loop_0 app_0 (cdr body_0))))
                                      (values
                                       (reverse$1 rev-create-vars_0)
                                       body_0))))))))))
                       (loop_0 '() vars+body_0)))
                    (case-lambda
                     ((create-vars_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 ((num-creates_0 (length create-vars_0)))
                              (let ((args+creates-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 ((e_0
                                                        (unsafe-car lst_0)))
                                                   (let ((rest_0
                                                          (unsafe-cdr lst_0)))
                                                     (let ((env_2
                                                            (let ((env_2
                                                                   (let ((hd_1
                                                                          (let ((p_0
                                                                                 (unwrap
                                                                                  e_0)))
                                                                            (if (pair?
                                                                                 p_0)
                                                                              (unwrap
                                                                               (car
                                                                                p_0))
                                                                              #f))))
                                                                     (if (if (eq?
                                                                              'define
                                                                              hd_1)
                                                                           (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)))
                                                                                                       (begin-unsafe
                                                                                                        (let ((app_0
                                                                                                               (unwrap
                                                                                                                'make-internal-variable)))
                                                                                                          (eq?
                                                                                                           app_0
                                                                                                           (unwrap
                                                                                                            a_3)))))
                                                                                                   #t
                                                                                                   #f)
                                                                                                 #f)))
                                                                                         (let ((a_2
                                                                                                (cdr
                                                                                                 p_1)))
                                                                                           (begin-unsafe
                                                                                            (let ((app_0
                                                                                                   (unwrap
                                                                                                    '())))
                                                                                              (eq?
                                                                                               app_0
                                                                                               (unwrap
                                                                                                a_2)))))
                                                                                         #f)
                                                                                       #f)))
                                                                                 #f)))
                                                                           #f)
                                                                       (let ((id_0
                                                                              (let ((d_0
                                                                                     (cdr
                                                                                      (unwrap
                                                                                       e_0))))
                                                                                (let ((a_0
                                                                                       (car
                                                                                        (unwrap
                                                                                         d_0))))
                                                                                  a_0))))
                                                                         (hash-set
                                                                          env_1
                                                                          id_0
                                                                          (+
                                                                           stack-depth_0
                                                                           num-args_0
                                                                           pos_0)))
                                                                       (error
                                                                        'match
                                                                        "failed ~e"
                                                                        e_0)))))
                                                              (values env_2))))
                                                       (for-loop_0
                                                        env_2
                                                        rest_0
                                                        (+ pos_0 1)))))
                                                 env_1))))))
                                        (for-loop_0
                                         args-env_0
                                         create-vars_0
                                         0)))))
                                (let ((body-vars-index_0
                                       (+
                                        num-args_0
                                        num-creates_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
                                                    (begin-unsafe
                                                     (null? (unwrap lst_0))))
                                                 (let ((e_0
                                                        (if (begin-unsafe
                                                             (pair?
                                                              (unwrap lst_0)))
                                                          (wrap-car lst_0)
                                                          lst_0)))
                                                   (let ((rest_0
                                                          (if (begin-unsafe
                                                               (pair?
                                                                (unwrap
                                                                 lst_0)))
                                                            (wrap-cdr lst_0)
                                                            null)))
                                                     (let ((e_1 e_0))
                                                       (call-with-values
                                                        (lambda ()
                                                          (call-with-values
                                                           (lambda ()
                                                             (letrec*
                                                              ((loop_0
                                                                (|#%name|
                                                                 loop
                                                                 (lambda (e_2
                                                                          env_2
                                                                          num-body-vars_1)
                                                                   (begin
                                                                     (let ((hd_1
                                                                            (let ((p_0
                                                                                   (unwrap
                                                                                    e_2)))
                                                                              (if (pair?
                                                                                   p_0)
                                                                                (unwrap
                                                                                 (car
                                                                                  p_0))
                                                                                #f))))
                                                                       (if (if (eq?
                                                                                'define
                                                                                hd_1)
                                                                             (let ((a_0
                                                                                    (cdr
                                                                                     (unwrap
                                                                                      e_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)
                                                                                         (if (let ((a_2
                                                                                                    (car
                                                                                                     p_1)))
                                                                                               (let ((p_2
                                                                                                      (unwrap
                                                                                                       a_2)))
                                                                                                 (if (pair?
                                                                                                      p_2)
                                                                                                   (if (let ((a_3
                                                                                                              (car
                                                                                                               p_2)))
                                                                                                         (begin-unsafe
                                                                                                          (let ((app_0
                                                                                                                 (unwrap
                                                                                                                  'make-internal-variable)))
                                                                                                            (eq?
                                                                                                             app_0
                                                                                                             (unwrap
                                                                                                              a_3)))))
                                                                                                     #t
                                                                                                     #f)
                                                                                                   #f)))
                                                                                           (let ((a_2
                                                                                                  (cdr
                                                                                                   p_1)))
                                                                                             (begin-unsafe
                                                                                              (let ((app_0
                                                                                                     (unwrap
                                                                                                      '())))
                                                                                                (eq?
                                                                                                 app_0
                                                                                                 (unwrap
                                                                                                  a_2)))))
                                                                                           #f)
                                                                                         #f)))
                                                                                   #f)))
                                                                             #f)
                                                                         (let ((id_0
                                                                                (let ((d_0
                                                                                       (cdr
                                                                                        (unwrap
                                                                                         e_2))))
                                                                                  (let ((a_0
                                                                                         (car
                                                                                          (unwrap
                                                                                           d_0))))
                                                                                    a_0))))
                                                                           (error
                                                                            'compile
                                                                            "misplaced make-internal-variable"))
                                                                         (if (if (eq?
                                                                                  'define
                                                                                  hd_1)
                                                                               (let ((a_0
                                                                                      (cdr
                                                                                       (unwrap
                                                                                        e_2))))
                                                                                 (let ((p_0
                                                                                        (unwrap
                                                                                         a_0)))
                                                                                   (if (pair?
                                                                                        p_0)
                                                                                     #t
                                                                                     #f)))
                                                                               #f)
                                                                           (let ((id_0
                                                                                  (let ((d_0
                                                                                         (cdr
                                                                                          (unwrap
                                                                                           e_2))))
                                                                                    (let ((a_0
                                                                                           (car
                                                                                            (unwrap
                                                                                             d_0))))
                                                                                      a_0))))
                                                                             (let ((app_0
                                                                                    (let ((app_0
                                                                                           (unwrap
                                                                                            id_0)))
                                                                                      (hash-set
                                                                                       env_2
                                                                                       app_0
                                                                                       (boxed2.1
                                                                                        (+
                                                                                         body-vars-index_0
                                                                                         num-body-vars_1))))))
                                                                               (values
                                                                                app_0
                                                                                (add1
                                                                                 num-body-vars_1))))
                                                                           (if (if (eq?
                                                                                    'define-values
                                                                                    hd_1)
                                                                                 (let ((a_0
                                                                                        (cdr
                                                                                         (unwrap
                                                                                          e_2))))
                                                                                   (let ((p_0
                                                                                          (unwrap
                                                                                           a_0)))
                                                                                     (if (pair?
                                                                                          p_0)
                                                                                       #t
                                                                                       #f)))
                                                                                 #f)
                                                                             (let ((ids_0
                                                                                    (let ((d_0
                                                                                           (cdr
                                                                                            (unwrap
                                                                                             e_2))))
                                                                                      (let ((a_0
                                                                                             (car
                                                                                              (unwrap
                                                                                               d_0))))
                                                                                        a_0))))
                                                                               (begin
                                                                                 (letrec*
                                                                                  ((for-loop_1
                                                                                    (|#%name|
                                                                                     for-loop
                                                                                     (lambda (env_3
                                                                                              num-body-vars_2
                                                                                              lst_1)
                                                                                       (begin
                                                                                         (if (not
                                                                                              (begin-unsafe
                                                                                               (null?
                                                                                                (unwrap
                                                                                                 lst_1))))
                                                                                           (let ((id_0
                                                                                                  (if (begin-unsafe
                                                                                                       (pair?
                                                                                                        (unwrap
                                                                                                         lst_1)))
                                                                                                    (wrap-car
                                                                                                     lst_1)
                                                                                                    lst_1)))
                                                                                             (let ((rest_1
                                                                                                    (if (begin-unsafe
                                                                                                         (pair?
                                                                                                          (unwrap
                                                                                                           lst_1)))
                                                                                                      (wrap-cdr
                                                                                                       lst_1)
                                                                                                      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_3
                                                                                                                 app_0
                                                                                                                 (boxed2.1
                                                                                                                  (+
                                                                                                                   body-vars-index_0
                                                                                                                   num-body-vars_2))))))
                                                                                                         (values
                                                                                                          app_0
                                                                                                          (add1
                                                                                                           num-body-vars_2))))
                                                                                                     (case-lambda
                                                                                                      ((env_4
                                                                                                        num-body-vars_3)
                                                                                                       (values
                                                                                                        env_4
                                                                                                        num-body-vars_3))
                                                                                                      (args
                                                                                                       (raise-binding-result-arity-error
                                                                                                        2
                                                                                                        args)))))
                                                                                                  (case-lambda
                                                                                                   ((env_4
                                                                                                     num-body-vars_3)
                                                                                                    (for-loop_1
                                                                                                     env_4
                                                                                                     num-body-vars_3
                                                                                                     rest_1))
                                                                                                   (args
                                                                                                    (raise-binding-result-arity-error
                                                                                                     2
                                                                                                     args)))))))
                                                                                           (values
                                                                                            env_3
                                                                                            num-body-vars_2)))))))
                                                                                  (for-loop_1
                                                                                   env_2
                                                                                   num-body-vars_1
                                                                                   ids_0))))
                                                                             (if (if (eq?
                                                                                      'begin
                                                                                      hd_1)
                                                                                   #t
                                                                                   #f)
                                                                               (let ((body_1
                                                                                      (let ((d_0
                                                                                             (cdr
                                                                                              (unwrap
                                                                                               e_2))))
                                                                                        d_0)))
                                                                                 (begin
                                                                                   (letrec*
                                                                                    ((for-loop_1
                                                                                      (|#%name|
                                                                                       for-loop
                                                                                       (lambda (env_3
                                                                                                num-body-vars_2
                                                                                                lst_1)
                                                                                         (begin
                                                                                           (if (not
                                                                                                (begin-unsafe
                                                                                                 (null?
                                                                                                  (unwrap
                                                                                                   lst_1))))
                                                                                             (let ((e_3
                                                                                                    (if (begin-unsafe
                                                                                                         (pair?
                                                                                                          (unwrap
                                                                                                           lst_1)))
                                                                                                      (wrap-car
                                                                                                       lst_1)
                                                                                                      lst_1)))
                                                                                               (let ((rest_1
                                                                                                      (if (begin-unsafe
                                                                                                           (pair?
                                                                                                            (unwrap
                                                                                                             lst_1)))
                                                                                                        (wrap-cdr
                                                                                                         lst_1)
                                                                                                        null)))
                                                                                                 (let ((e_4
                                                                                                        e_3))
                                                                                                   (call-with-values
                                                                                                    (lambda ()
                                                                                                      (call-with-values
                                                                                                       (lambda ()
                                                                                                         (loop_0
                                                                                                          e_4
                                                                                                          env_3
                                                                                                          num-body-vars_2))
                                                                                                       (case-lambda
                                                                                                        ((env_4
                                                                                                          num-body-vars_3)
                                                                                                         (values
                                                                                                          env_4
                                                                                                          num-body-vars_3))
                                                                                                        (args
                                                                                                         (raise-binding-result-arity-error
                                                                                                          2
                                                                                                          args)))))
                                                                                                    (case-lambda
                                                                                                     ((env_4
                                                                                                       num-body-vars_3)
                                                                                                      (for-loop_1
                                                                                                       env_4
                                                                                                       num-body-vars_3
                                                                                                       rest_1))
                                                                                                     (args
                                                                                                      (raise-binding-result-arity-error
                                                                                                       2
                                                                                                       args)))))))
                                                                                             (values
                                                                                              env_3
                                                                                              num-body-vars_2)))))))
                                                                                    (for-loop_1
                                                                                     env_2
                                                                                     num-body-vars_1
                                                                                     body_1))))
                                                                               (values
                                                                                env_2
                                                                                num-body-vars_1)))))))))))
                                                              (loop_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+creates-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
                                             num-creates_0
                                             stack-depth_0)))
                                       (let ((stk-i_0
                                              (make-stack-info.1
                                               #f
                                               hash2610
                                               #t)))
                                         (let ((new-body_0
                                                (compile-top-body_0
                                                 body_0
                                                 body-env_0
                                                 body-stack-depth_0
                                                 stk-i_0
                                                 mutated_0)))
                                           (let ((internal-var-syms_0
                                                  (reverse$1
                                                   (begin
                                                     (letrec*
                                                      ((for-loop_0
                                                        (|#%name|
                                                         for-loop
                                                         (lambda (fold-var_0
                                                                  lst_0)
                                                           (begin
                                                             (if (pair? lst_0)
                                                               (let ((e_0
                                                                      (unsafe-car
                                                                       lst_0)))
                                                                 (let ((rest_0
                                                                        (unsafe-cdr
                                                                         lst_0)))
                                                                   (let ((fold-var_1
                                                                          (let ((fold-var_1
                                                                                 (cons
                                                                                  (let ((hd_1
                                                                                         (let ((p_0
                                                                                                (unwrap
                                                                                                 e_0)))
                                                                                           (if (pair?
                                                                                                p_0)
                                                                                             (unwrap
                                                                                              (car
                                                                                               p_0))
                                                                                             #f))))
                                                                                    (if (if (eq?
                                                                                             'define
                                                                                             hd_1)
                                                                                          (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)))
                                                                                                                      (begin-unsafe
                                                                                                                       (let ((app_0
                                                                                                                              (unwrap
                                                                                                                               'make-internal-variable)))
                                                                                                                         (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)))
                                                                                                                                        (begin-unsafe
                                                                                                                                         (let ((app_0
                                                                                                                                                (unwrap
                                                                                                                                                 'quote)))
                                                                                                                                           (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)))
                                                                                                                                            (begin-unsafe
                                                                                                                                             (let ((app_0
                                                                                                                                                    (unwrap
                                                                                                                                                     '())))
                                                                                                                                               (eq?
                                                                                                                                                app_0
                                                                                                                                                (unwrap
                                                                                                                                                 a_6)))))
                                                                                                                                          #f)))
                                                                                                                                    #f)
                                                                                                                                  #f)))
                                                                                                                          (let ((a_4
                                                                                                                                 (cdr
                                                                                                                                  p_3)))
                                                                                                                            (begin-unsafe
                                                                                                                             (let ((app_0
                                                                                                                                    (unwrap
                                                                                                                                     '())))
                                                                                                                               (eq?
                                                                                                                                app_0
                                                                                                                                (unwrap
                                                                                                                                 a_4)))))
                                                                                                                          #f)
                                                                                                                        #f)))
                                                                                                                  #f)
                                                                                                                #f)))
                                                                                                        (let ((a_2
                                                                                                               (cdr
                                                                                                                p_1)))
                                                                                                          (begin-unsafe
                                                                                                           (let ((app_0
                                                                                                                  (unwrap
                                                                                                                   '())))
                                                                                                             (eq?
                                                                                                              app_0
                                                                                                              (unwrap
                                                                                                               a_2)))))
                                                                                                        #f)
                                                                                                      #f)))
                                                                                                #f)))
                                                                                          #f)
                                                                                      (let ((id_0
                                                                                             (let ((d_0
                                                                                                    (cdr
                                                                                                     (unwrap
                                                                                                      e_0))))
                                                                                               (let ((d_1
                                                                                                      (cdr
                                                                                                       (unwrap
                                                                                                        d_0))))
                                                                                                 (let ((a_0
                                                                                                        (car
                                                                                                         (unwrap
                                                                                                          d_1))))
                                                                                                   (let ((d_2
                                                                                                          (cdr
                                                                                                           (unwrap
                                                                                                            a_0))))
                                                                                                     (let ((a_1
                                                                                                            (car
                                                                                                             (unwrap
                                                                                                              d_2))))
                                                                                                       (let ((d_3
                                                                                                              (cdr
                                                                                                               (unwrap
                                                                                                                a_1))))
                                                                                                         (let ((a_2
                                                                                                                (car
                                                                                                                 (unwrap
                                                                                                                  d_3))))
                                                                                                           a_2)))))))))
                                                                                        id_0)
                                                                                      (error
                                                                                       'match
                                                                                       "failed ~e"
                                                                                       e_0)))
                                                                                  fold-var_0)))
                                                                            (values
                                                                             fold-var_1))))
                                                                     (for-loop_0
                                                                      fold-var_1
                                                                      rest_0))))
                                                               fold-var_0))))))
                                                      (for-loop_0
                                                       null
                                                       create-vars_0))))))
                                             (values
                                              new-body_0
                                              num-body-vars_0
                                              internal-var-syms_0))))))
                                    (args
                                     (raise-binding-result-arity-error
                                      2
                                      args)))))))))))
                     (args (raise-binding-result-arity-error 2 args)))))
                  (args (raise-binding-result-arity-error 2 args))))
                (error 'match "failed ~e" v_0)))))))
      (compile-top-body_0
       (|#%name|
        compile-top-body
        (lambda (body_0 env_0 stack-depth_0 stk-i_0 mutated_0)
          (begin
            (let ((bs_0
                   (letrec*
                    ((loop_0
                      (|#%name|
                       loop
                       (lambda (body_1)
                         (begin
                           (if (begin-unsafe
                                (let ((app_0 (unwrap '())))
                                  (eq? app_0 (unwrap body_1))))
                             '()
                             (if (let ((p_0 (unwrap body_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)))
                                                     (begin-unsafe
                                                      (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_1)))
                                    (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_0 (append subs_0 rest_0)))
                                 (args
                                  (raise-binding-result-arity-error 2 args))))
                               (if (let ((p_0 (unwrap body_1)))
                                     (if (pair? p_0) #t #f))
                                 (call-with-values
                                  (lambda ()
                                    (let ((p_0 (unwrap body_1)))
                                      (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_0 rest_0)))
                                      (cons
                                       (compile-expr_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_1)))))))))
                    (loop_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)))))))))
      (compile-body_0
       (|#%name|
        compile-body
        (lambda (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)))
                      (begin-unsafe
                       (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
                 e_0
                 env_0
                 stack-depth_0
                 stk-i_0
                 tail?_0
                 mutated_0))
              (list->vector
               (cons
                'begin
                (compile-list_0
                 body_0
                 env_0
                 stack-depth_0
                 stk-i_0
                 tail?_0
                 mutated_0))))))))
      (compile-list_0
       (|#%name|
        compile-list
        (lambda (body_0 env_0 stack-depth_0 stk-i_0 tail?_0 mutated_0)
          (begin
            (letrec*
             ((loop_0
               (|#%name|
                loop
                (lambda (body_1)
                  (begin
                    (if (null? body_1)
                      '()
                      (let ((rest-body_0 (wrap-cdr body_1)))
                        (let ((new-rest_0 (loop_0 rest-body_0)))
                          (cons
                           (let ((app_0 (wrap-car body_1)))
                             (compile-expr_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_0 body_0))))))
      (compile-expr_0
       (|#%name|
        compile-expr
        (lambda (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
                                    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
                                         (begin-unsafe (null? (unwrap lst_0))))
                                      (let ((v_0
                                             (if (begin-unsafe
                                                  (pair? (unwrap lst_0)))
                                               (wrap-car lst_0)
                                               lst_0)))
                                        (let ((rest_0
                                               (if (begin-unsafe
                                                    (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
                                         (begin-unsafe (null? (unwrap lst_0))))
                                      (let ((v_0
                                             (if (begin-unsafe
                                                  (pair? (unwrap lst_0)))
                                               (wrap-car lst_0)
                                               lst_0)))
                                        (let ((rest_0
                                               (if (begin-unsafe
                                                    (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
                                                                 (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
                                                     (begin-unsafe
                                                      (null? (unwrap lst_0))))
                                                  (let ((v_0
                                                         (if (begin-unsafe
                                                              (pair?
                                                               (unwrap lst_0)))
                                                           (wrap-car lst_0)
                                                           lst_0)))
                                                    (let ((rest_0
                                                           (if (begin-unsafe
                                                                (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)))
                                                                                  (begin-unsafe
                                                                                   (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
                                                  (begin-unsafe
                                                   (null? (unwrap lst_0))))
                                               (let ((v_0
                                                      (if (begin-unsafe
                                                           (pair?
                                                            (unwrap lst_0)))
                                                        (wrap-car lst_0)
                                                        lst_0)))
                                                 (let ((rest_0
                                                        (if (begin-unsafe
                                                             (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
                                     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
                                             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))
                                                            (let ((app_0
                                                                   (list
                                                                    pos_0
                                                                    pos2_1)))
                                                              (vector
                                                               'let*
                                                               app_0
                                                               (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))
                                                              (let ((app_0
                                                                     (cons
                                                                      pos_0
                                                                      poss_1)))
                                                                (vector
                                                                 'let*
                                                                 app_0
                                                                 (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_0
                                                                 (|#%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_0
                                                                                 app_0
                                                                                 app_1
                                                                                 (cdr
                                                                                  rhss_1))))
                                                                            #f))))))))
                                                               (loop_0
                                                                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
                       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
                         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
                             vs_0
                             env_0
                             stack-depth_0
                             stk-i_0
                             tail?_0
                             mutated_0))
                          (if (if (eq? 'begin-unsafe hd_0) #t #f)
                            (let ((vs_0 (let ((d_0 (cdr (unwrap e_0)))) d_0)))
                              (compile-body_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)))
                                          (begin-unsafe
                                           (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
                                 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
                                           vs_0
                                           env_0
                                           stack-depth_0
                                           stk-i_0
                                           #f
                                           mutated_0)))
                                     (vector
                                      'begin0
                                      (compile-expr_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)))
                                              (begin-unsafe
                                               (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
                                      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)))
                                                            (begin-unsafe
                                                             (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
                                                   thn_0
                                                   env_0
                                                   stack-depth_0
                                                   then-stk-i_0
                                                   tail?_0
                                                   mutated_0)))
                                             (let ((new-else_0
                                                    (compile-expr_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
                                                         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)))
                                                                    (begin-unsafe
                                                                     (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
                                                 body_0
                                                 env_0
                                                 stack-depth_0
                                                 stk-i_0
                                                 tail?_0
                                                 mutated_0)))
                                           (let ((new-val_0
                                                  (compile-expr_0
                                                   val_0
                                                   env_0
                                                   stack-depth_0
                                                   stk-i_0
                                                   #f
                                                   mutated_0)))
                                             (vector
                                              'wcm
                                              (compile-expr_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)))
                                                    (begin-unsafe
                                                     (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)))
                                                            (begin-unsafe
                                                             (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
                                              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)))
                                                              (begin-unsafe
                                                               (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
                                                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)))
                                                                (begin-unsafe
                                                                 (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
                                                    (let ((app_0
                                                           (list
                                                            'lambda
                                                            '()
                                                            rhs_0)))
                                                      (list
                                                       'call-with-values
                                                       app_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)))
                                                                                (begin-unsafe
                                                                                 (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)))
                                                                    (begin-unsafe
                                                                     (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
                                                    (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)))
                                                                            (begin-unsafe
                                                                             (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)))
                                                                                    (begin-unsafe
                                                                                     (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)))
                                                                                    (begin-unsafe
                                                                                     (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
                                                                                                   (begin-unsafe
                                                                                                    (null?
                                                                                                     (unwrap
                                                                                                      lst_0))))
                                                                                                (let ((v_0
                                                                                                       (if (begin-unsafe
                                                                                                            (pair?
                                                                                                             (unwrap
                                                                                                              lst_0)))
                                                                                                         (wrap-car
                                                                                                          lst_0)
                                                                                                         lst_0)))
                                                                                                  (let ((rest_0
                                                                                                         (if (begin-unsafe
                                                                                                              (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)))
                                                                        (begin-unsafe
                                                                         (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
                                                                                      (begin-unsafe
                                                                                       (null?
                                                                                        (unwrap
                                                                                         lst_0))))
                                                                                   (let ((v_0
                                                                                          (if (begin-unsafe
                                                                                               (pair?
                                                                                                (unwrap
                                                                                                 lst_0)))
                                                                                            (wrap-car
                                                                                             lst_0)
                                                                                            lst_0)))
                                                                                     (let ((rest_0
                                                                                            (if (begin-unsafe
                                                                                                 (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
                                                                                                                   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
                                                                   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)))
                                                                                            (begin-unsafe
                                                                                             (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)))
                                                                              (begin-unsafe
                                                                               (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)))
                                                                                      (begin-unsafe
                                                                                       (let ((app_0
                                                                                              (unwrap
                                                                                               '())))
                                                                                         (eq?
                                                                                          app_0
                                                                                          (unwrap
                                                                                           a_3)))))
                                                                                  #t
                                                                                  #f)
                                                                                #f)))
                                                                          #f)
                                                                        #f)))
                                                                (let ((a_1
                                                                       (cdr
                                                                        p_0)))
                                                                  (begin-unsafe
                                                                   (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
                                                        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)))
                                                                                (begin-unsafe
                                                                                 (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)))
                                                                                        (begin-unsafe
                                                                                         (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)))
                                                                                        (begin-unsafe
                                                                                         (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)))
                                                                                            (begin-unsafe
                                                                                             (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)))
                                                                                                (begin-unsafe
                                                                                                 (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)))
                                                                                                    (begin-unsafe
                                                                                                     (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
                                                                 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
                                                             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)))
                                                                          (begin-unsafe
                                                                           (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
                                                                     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)))
                                                                                                (begin-unsafe
                                                                                                 (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)))
                                                                                                    (begin-unsafe
                                                                                                     (let ((app_0
                                                                                                            (unwrap
                                                                                                             '())))
                                                                                                       (eq?
                                                                                                        app_0
                                                                                                        (unwrap
                                                                                                         a_5)))))
                                                                                                  #f)))
                                                                                            #f)
                                                                                          #f)))
                                                                                  (let ((a_3
                                                                                         (cdr
                                                                                          p_2)))
                                                                                    (begin-unsafe
                                                                                     (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
                                                                       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)))
                                                                        (begin-unsafe
                                                                         (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)))
                                                                          (begin-unsafe
                                                                           (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
                                                                 (wrap-cdr e_0)
                                                                 env_0
                                                                 stack-depth_0
                                                                 stk-i_0
                                                                 tail?_0
                                                                 mutated_0)
                                                                (if (if (eq?
                                                                         '|#%app/value|
                                                                         hd_0)
                                                                      (let ((a_0
                                                                             (cdr
                                                                              (unwrap
                                                                               e_0))))
                                                                        (wrap-list?
                                                                         a_0))
                                                                      #f)
                                                                  (compile-apply_0
                                                                   (wrap-cdr
                                                                    e_0)
                                                                   env_0
                                                                   stack-depth_0
                                                                   stk-i_0
                                                                   tail?_0
                                                                   mutated_0)
                                                                  (if (if (eq?
                                                                           '|#%app/no-return|
                                                                           hd_0)
                                                                        (let ((a_0
                                                                               (cdr
                                                                                (unwrap
                                                                                 e_0))))
                                                                          (wrap-list?
                                                                           a_0))
                                                                        #f)
                                                                    (compile-apply_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
                                                                         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 (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
                                                 (begin-unsafe
                                                  (null? (unwrap lst_0))))
                                              (let ((v_0
                                                     (if (begin-unsafe
                                                          (pair?
                                                           (unwrap lst_0)))
                                                       (wrap-car lst_0)
                                                       lst_0)))
                                                (let ((rest_0
                                                       (if (begin-unsafe
                                                            (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)))
                                                                              (begin-unsafe
                                                                               (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
                                            (begin-unsafe
                                             (null? (unwrap lst_0))))
                                         (let ((v_0
                                                (if (begin-unsafe
                                                     (pair? (unwrap lst_0)))
                                                  (wrap-car lst_0)
                                                  lst_0)))
                                           (let ((rest_0
                                                  (if (begin-unsafe
                                                       (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 ((make-env_0
                          (|#%name|
                           make-env
                           (lambda (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))))))))
                     (let ((rhs-env_0 (make-env_0 boxed/check3.1)))
                       (let ((body-env_0 (make-env_0 boxed2.1)))
                         (let ((body-stack-depth_0 (+ stack-depth_0 count_0)))
                           (let ((c-body_0
                                  (compile-body_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
                                      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-apply_0
       (|#%name|
        compile-apply
        (lambda (es_0 env_0 stack-depth_0 stk-i_0 tail?_0 mutated_0)
          (begin
            (begin
              (if tail?_0
                (void)
                (begin-unsafe
                 (set-stack-info-non-tail-call-later?! stk-i_0 #t)))
              (let ((new-es_0
                     (compile-list_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 (id_0 rhs_0 env_0 stack-depth_0 stk-i_0 mutated_0)
          (begin
            (let ((compiled-rhs_0
                   (compile-expr_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))))))))))
      (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
                                         (begin-unsafe (null? (unwrap lst_0))))
                                      (let ((v_0
                                             (if (begin-unsafe
                                                  (pair? (unwrap lst_0)))
                                               (wrap-car lst_0)
                                               lst_0)))
                                        (let ((rest_0
                                               (if (begin-unsafe
                                                    (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
                                         (begin-unsafe (null? (unwrap lst_0))))
                                      (let ((v_0
                                             (if (begin-unsafe
                                                  (pair? (unwrap lst_0)))
                                               (wrap-car lst_0)
                                               lst_0)))
                                        (let ((rest_0
                                               (if (begin-unsafe
                                                    (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
                                                     (begin-unsafe
                                                      (null? (unwrap lst_0))))
                                                  (let ((v_0
                                                         (if (begin-unsafe
                                                              (pair?
                                                               (unwrap lst_0)))
                                                           (wrap-car lst_0)
                                                           lst_0)))
                                                    (let ((rest_0
                                                           (if (begin-unsafe
                                                                (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)))
                                                                                  (begin-unsafe
                                                                                   (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
                                                  (begin-unsafe
                                                   (null? (unwrap lst_0))))
                                               (let ((v_0
                                                      (if (begin-unsafe
                                                           (pair?
                                                            (unwrap lst_0)))
                                                        (wrap-car lst_0)
                                                        lst_0)))
                                                 (let ((rest_0
                                                        (if (begin-unsafe
                                                             (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
                                                       (begin-unsafe
                                                        (null?
                                                         (unwrap lst_0))))
                                                    (let ((v_0
                                                           (if (begin-unsafe
                                                                (pair?
                                                                 (unwrap
                                                                  lst_0)))
                                                             (wrap-car lst_0)
                                                             lst_0)))
                                                      (let ((rest_0
                                                             (if (begin-unsafe
                                                                  (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)))
                                                                                    (begin-unsafe
                                                                                     (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
                                                    (begin-unsafe
                                                     (null? (unwrap lst_0))))
                                                 (let ((v_0
                                                        (if (begin-unsafe
                                                             (pair?
                                                              (unwrap lst_0)))
                                                          (wrap-car lst_0)
                                                          lst_0)))
                                                   (let ((rest_0
                                                          (if (begin-unsafe
                                                               (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
                                                         (begin-unsafe
                                                          (null?
                                                           (unwrap lst_0))))
                                                      (let ((v_0
                                                             (if (begin-unsafe
                                                                  (pair?
                                                                   (unwrap
                                                                    lst_0)))
                                                               (wrap-car lst_0)
                                                               lst_0)))
                                                        (let ((rest_0
                                                               (if (begin-unsafe
                                                                    (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)))
                                                                                      (begin-unsafe
                                                                                       (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
                                                      (begin-unsafe
                                                       (null? (unwrap lst_0))))
                                                   (let ((v_0
                                                          (if (begin-unsafe
                                                               (pair?
                                                                (unwrap
                                                                 lst_0)))
                                                            (wrap-car lst_0)
                                                            lst_0)))
                                                     (let ((rest_0
                                                            (if (begin-unsafe
                                                                 (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)))
                                        (begin-unsafe
                                         (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? 'begin-unsafe 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)))
                                          (begin-unsafe
                                           (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)))
                                            (begin-unsafe
                                             (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)))
                                                          (begin-unsafe
                                                           (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)))
                                                                  (begin-unsafe
                                                                   (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)))
                                                  (begin-unsafe
                                                   (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)))
                                                          (begin-unsafe
                                                           (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)))
                                                            (begin-unsafe
                                                             (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)))
                                                              (begin-unsafe
                                                               (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)))
                                                                (begin-unsafe
                                                                 (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)))
                                                                                      (begin-unsafe
                                                                                       (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)))
                                                                                          (begin-unsafe
                                                                                           (let ((app_0
                                                                                                  (unwrap
                                                                                                   '())))
                                                                                             (eq?
                                                                                              app_0
                                                                                              (unwrap
                                                                                               a_5)))))
                                                                                        #f)))
                                                                                  #f)
                                                                                #f)))
                                                                        (let ((a_3
                                                                               (cdr
                                                                                p_2)))
                                                                          (begin-unsafe
                                                                           (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)))
                                                              (begin-unsafe
                                                               (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)))
                                                                (begin-unsafe
                                                                 (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 (if (eq?
                                                               '|#%app/value|
                                                               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 (if (eq?
                                                                 '|#%app/no-return|
                                                                 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_0
               (|#%name|
                loop
                (lambda (body_1 mutated_1)
                  (begin
                    (if (null? body_1)
                      mutated_1
                      (let ((app_0 (wrap-cdr body_1)))
                        (loop_0
                         app_0
                         (extract-expr-mutated_0
                          (wrap-car body_1)
                          mutated_1)))))))))
             (loop_0 body_0 mutated_0))))))
      (args->env_0
       (|#%name|
        args->env
        (lambda (ids_0 env_0 stack-depth_0 mutated_0)
          (begin
            (letrec*
             ((loop_0
               (|#%name|
                loop
                (lambda (ids_1 env_1 count_0)
                  (begin
                    (if (begin-unsafe (null? (unwrap ids_1)))
                      (values env_1 count_0 #f)
                      (if (begin-unsafe (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_0 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_0 ids_0 env_0 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))))))
      (add-clears_0
       (|#%name|
        add-clears
        (lambda (e_0 stk-i_0 all-clear_0)
          (begin
            (if (begin-unsafe (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)))))
      (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))))))))))))
      (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)))))))
      (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)
                      (letrec*
                       ((loop_0
                         (|#%name|
                          loop
                          (lambda (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_0 (add1 i_0))))))))))
                       (loop_0 1))
                      (list e_0)))
                  (list e_0)))
              (list e_0)))))))
     (with-continuation-mark*
      authentic
      parameterization-key
      (let ((app_0 (continuation-mark-set-first #f parameterization-key)))
        (extend-parameterization app_0 gensym-counter (box 0)))
      (start_0 linklet-e_0)))))
(define interpret-linklet
  (lambda (b_0)
    (let ((internal-var-syms_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)
                (internal-var-syms_1 internal-var-syms_0))
            (lambda args_0
              (let ((args-stack_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 #f args_0 0)))))
                (let ((post-args-pos_0
                       (begin-unsafe (intmap-count args-stack_0))))
                  (let ((args+vars-stack_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 ((var_0 (unsafe-car lst_0)))
                                       (let ((rest_0 (unsafe-cdr lst_0)))
                                         (let ((stack_1
                                                (let ((stack_1
                                                       (let ((app_0
                                                              (+
                                                               pos_0
                                                               post-args-pos_0)))
                                                         (stack-set
                                                          stack_0
                                                          app_0
                                                          (|#%app|
                                                           make-internal-variable
                                                           var_0)))))
                                                  (values stack_1))))
                                           (for-loop_0
                                            stack_1
                                            rest_0
                                            (+ pos_0 1)))))
                                     stack_0))))))
                            (for-loop_0 args-stack_0 internal-var-syms_1 0)))))
                    (let ((post-args+vars-pos_0
                           (begin-unsafe (intmap-count args+vars-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
                                                       (let ((app_0
                                                              (+
                                                               pos_0
                                                               post-args+vars-pos_0)))
                                                         (stack-set
                                                          stack_0
                                                          app_0
                                                          (box
                                                           unsafe-undefined)))))
                                                  (values stack_1))))
                                           (for-loop_0 stack_1 (+ pos_0 1)))
                                         stack_0))))))
                                (for-loop_0 args+vars-stack_0 0)))))
                        (interpret-expr b_1 stack_0)))))))))))))
(define interpret-expr
  (lambda (b_0 stack_0)
    (letrec*
     ((interpret_0
       (|#%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_1 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_0
                                              (|#%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_0
                                                          (hash-iterate-next
                                                           return-mode63_0
                                                           i_0))))
                                                       (args
                                                        (raise-binding-result-arity-error
                                                         2
                                                         args))))))))))
                                            (loop_0
                                             (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_1
                                       (unsafe-vector*-ref b64_0 2)
                                       rand-stack_0))
                                    (case-lambda
                                     ((stack_1 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_1 v_0))
                                            (vs_0
                                             (apply values stack_1 vs_0))))
                                          (values
                                           'trampoline
                                           (lambda ()
                                             (call-with-values
                                              (lambda ()
                                                (letrec*
                                                 ((loop_0
                                                   (|#%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_0
                                                               (hash-iterate-next
                                                                return-mode63_0
                                                                i_0))))
                                                            (args
                                                             (raise-binding-result-arity-error
                                                              2
                                                              args))))))))))
                                                 (loop_0
                                                  (hash-iterate-first
                                                   return-mode63_0))))
                                              (case-lambda
                                               ((v_0) (values stack_1 v_0))
                                               (vs_0
                                                (apply
                                                 values
                                                 stack_1
                                                 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_1
                                         (unsafe-vector*-ref b64_0 2)
                                         rand-stack_0))
                                      (case-lambda
                                       ((stack1_0 rand1_0)
                                        (call-with-values
                                         (lambda ()
                                           (interpret_1
                                            (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_0
                                                        (|#%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_0
                                                                    (hash-iterate-next
                                                                     return-mode63_0
                                                                     i_0))))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   2
                                                                   args))))))))))
                                                      (loop_0
                                                       (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 ()
                                           (unsafe-normalise-inputs
                                            unsafe-vector-length
                                            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_1
                                                          rev-rands_0
                                                          idx_0)
                                                   (begin
                                                     (if (unsafe-fx<
                                                          idx_0
                                                          stop*_0)
                                                       (let ((b_1
                                                              (unsafe-vector-ref
                                                               v*_0
                                                               idx_0)))
                                                         (call-with-values
                                                          (lambda ()
                                                            (call-with-values
                                                             (lambda ()
                                                               (call-with-values
                                                                (lambda ()
                                                                  (interpret_1
                                                                   b_1
                                                                   stack_1))
                                                                (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_2
                                                                rev-rands_1)
                                                               (values
                                                                stack_2
                                                                rev-rands_1))
                                                              (args
                                                               (raise-binding-result-arity-error
                                                                2
                                                                args)))))
                                                          (case-lambda
                                                           ((stack_2
                                                             rev-rands_1)
                                                            (for-loop_0
                                                             stack_2
                                                             rev-rands_1
                                                             (unsafe-fx+
                                                              idx_0
                                                              1)))
                                                           (args
                                                            (raise-binding-result-arity-error
                                                             2
                                                             args)))))
                                                       (values
                                                        stack_1
                                                        rev-rands_0)))))))
                                              (for-loop_0
                                               rand-stack_0
                                               null
                                               start*_0))))
                                          (args
                                           (raise-binding-result-arity-error
                                            4
                                            args)))))
                                      (case-lambda
                                       ((stack_1 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_1 v_0))
                                                (vs_0
                                                 (apply values stack_1 vs_0))))
                                              (values
                                               'trampoline
                                               (lambda ()
                                                 (call-with-values
                                                  (lambda ()
                                                    (letrec*
                                                     ((loop_0
                                                       (|#%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_0
                                                                   (hash-iterate-next
                                                                    return-mode63_0
                                                                    i_0))))
                                                                (args
                                                                 (raise-binding-result-arity-error
                                                                  2
                                                                  args))))))))))
                                                     (loop_0
                                                      (hash-iterate-first
                                                       return-mode63_0))))
                                                  (case-lambda
                                                   ((v_0) (values stack_1 v_0))
                                                   (vs_0
                                                    (apply
                                                     values
                                                     stack_1
                                                     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_1
                                               (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
                                                     (letrec*
                                                      ((loop_0
                                                        (|#%name|
                                                         loop
                                                         (lambda (i_0 stack_1)
                                                           (begin
                                                             (if (fx=
                                                                  i_0
                                                                  len_0)
                                                               stack_1
                                                               (call-with-values
                                                                (lambda ()
                                                                  (interpret_1
                                                                   (unsafe-vector*-ref
                                                                    rhss_1
                                                                    i_0)
                                                                   stack_1))
                                                                (case-lambda
                                                                 ((new-stack_0
                                                                   val_0)
                                                                  (let ((app_0
                                                                         (loop_0
                                                                          (fx+
                                                                           i_0
                                                                           1)
                                                                          new-stack_0)))
                                                                    (stack-set
                                                                     app_0
                                                                     (fx+
                                                                      i_0
                                                                      pos_1)
                                                                     val_0)))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   2
                                                                   args))))))))))
                                                      (loop_0 0 stack65_0))))
                                                (interpret_1
                                                 b_1
                                                 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_1
                                                 (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_1
                                                                    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_2
                                                                                  (let ((stack_2
                                                                                         (letrec*
                                                                                          ((loop_0
                                                                                            (|#%name|
                                                                                             loop
                                                                                             (lambda (i_0
                                                                                                      stack_2)
                                                                                               (begin
                                                                                                 (if (fx=
                                                                                                      i_0
                                                                                                      len_0)
                                                                                                   stack_2
                                                                                                   (call-with-values
                                                                                                    (lambda ()
                                                                                                      (interpret_1
                                                                                                       (unsafe-vector*-ref
                                                                                                        rhss_0
                                                                                                        i_0)
                                                                                                       stack_2))
                                                                                                    (case-lambda
                                                                                                     ((new-stack_0
                                                                                                       val_0)
                                                                                                      (let ((app_0
                                                                                                             (fx+
                                                                                                              i_0
                                                                                                              1)))
                                                                                                        (loop_0
                                                                                                         app_0
                                                                                                         (stack-set
                                                                                                          new-stack_0
                                                                                                          (fx+
                                                                                                           i_0
                                                                                                           pos_0)
                                                                                                          val_0))))
                                                                                                     (args
                                                                                                      (raise-binding-result-arity-error
                                                                                                       2
                                                                                                       args))))))))))
                                                                                          (loop_0
                                                                                           0
                                                                                           stack_1))))
                                                                                    (values
                                                                                     stack_2))))
                                                                             (for-loop_0
                                                                              stack_2
                                                                              rest_0
                                                                              rest_1)))))))
                                                                 stack_1))))))
                                                        (for-loop_0
                                                         stack65_0
                                                         poss_1
                                                         rhsss_1)))))
                                                (interpret_1
                                                 b_1
                                                 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_1
                                                   (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 ()
                                                     (letrec*
                                                      ((loop_0
                                                        (|#%name|
                                                         loop
                                                         (lambda (stack_1 i_0)
                                                           (begin
                                                             (if (= i_0 len_0)
                                                               (values
                                                                stack_1
                                                                null)
                                                               (let ((bx_0
                                                                      (box
                                                                       unsafe-undefined)))
                                                                 (call-with-values
                                                                  (lambda ()
                                                                    (let ((app_0
                                                                           (stack-set
                                                                            stack_1
                                                                            (fx+
                                                                             (fx-
                                                                              len_0
                                                                              i_0
                                                                              1)
                                                                             pos_1)
                                                                            bx_0)))
                                                                      (loop_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_0 stack65_0 0)))
                                                   (case-lambda
                                                    ((body-stack_0 boxes_0)
                                                     (letrec*
                                                      ((loop_0
                                                        (|#%name|
                                                         loop
                                                         (lambda (i_0
                                                                  stack_1
                                                                  boxes_1)
                                                           (begin
                                                             (if (fx=
                                                                  i_0
                                                                  len_0)
                                                               (interpret_1
                                                                b_1
                                                                stack_1
                                                                return-mode63_0)
                                                               (call-with-values
                                                                (lambda ()
                                                                  (interpret_1
                                                                   (unsafe-vector*-ref
                                                                    rhss_1
                                                                    i_0)
                                                                   stack_1))
                                                                (case-lambda
                                                                 ((new-stack_0
                                                                   val_0)
                                                                  (begin
                                                                    (set-box!
                                                                     (car
                                                                      boxes_1)
                                                                     val_0)
                                                                    (let ((app_0
                                                                           (fx+
                                                                            i_0
                                                                            1)))
                                                                      (loop_0
                                                                       app_0
                                                                       new-stack_0
                                                                       (cdr
                                                                        boxes_1)))))
                                                                 (args
                                                                  (raise-binding-result-arity-error
                                                                   2
                                                                   args))))))))))
                                                      (loop_0
                                                       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_0
                                               (|#%name|
                                                loop
                                                (lambda (i_0 stack_1)
                                                  (begin
                                                    (if (fx= i_0 last_0)
                                                      (interpret_1
                                                       (unsafe-vector*-ref
                                                        b64_0
                                                        i_0)
                                                       stack_1
                                                       return-mode63_0)
                                                      (call-with-values
                                                       (lambda ()
                                                         (interpret_1
                                                          (unsafe-vector*-ref
                                                           b64_0
                                                           i_0)
                                                          stack_1))
                                                       (case-lambda
                                                        ((new-stack_0 val_0)
                                                         (loop_0
                                                          (fx+ i_0 1)
                                                          new-stack_0))
                                                        ((new-stack_0 . vals_0)
                                                         (loop_0
                                                          (fx+ i_0 1)
                                                          new-stack_0))))))))))
                                             (loop_0 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_0
                                                 (|#%name|
                                                  loop
                                                  (lambda (bs_1 stack_1)
                                                    (begin
                                                      (if (null? (cdr bs_1))
                                                        (interpret_1
                                                         (car bs_1)
                                                         stack_1
                                                         return-mode63_0)
                                                        (call-with-values
                                                         (lambda ()
                                                           (interpret_1
                                                            (car bs_1)
                                                            stack_1))
                                                         (case-lambda
                                                          ((new-stack_0 val_0)
                                                           (loop_0
                                                            (cdr bs_1)
                                                            new-stack_0))
                                                          ((new-stack_0
                                                            .
                                                            vals_0)
                                                           (loop_0
                                                            (cdr bs_1)
                                                            new-stack_0))))))))))
                                               (loop_0 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_1
                                                      b0_0
                                                      stack65_0))
                                                   (lambda (stack_1 . vals_0)
                                                     (letrec*
                                                      ((loop_0
                                                        (|#%name|
                                                         loop
                                                         (lambda (i_0 stack_2)
                                                           (begin
                                                             (let ((new-stack_0
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (interpret_1
                                                                        (unsafe-vector*-ref
                                                                         b64_0
                                                                         i_0)
                                                                        stack_2))
                                                                     (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_0
                                                                  (fx+ i_0 1)
                                                                  new-stack_0))))))))
                                                      (loop_0 2 stack_1))))))
                                              (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_1
                                                      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_0
                                                           (|#%name|
                                                            loop
                                                            (lambda (clears_2
                                                                     stack_1)
                                                              (begin
                                                                (if (null?
                                                                     clears_2)
                                                                  (interpret_1
                                                                   e_0
                                                                   stack_1
                                                                   return-mode63_0)
                                                                  (let ((app_0
                                                                         (cdr
                                                                          clears_2)))
                                                                    (loop_0
                                                                     app_0
                                                                     (let ((i_0
                                                                            (car
                                                                             clears_2)))
                                                                       (begin-unsafe
                                                                        (begin-unsafe
                                                                         (delete
                                                                          stack_1
                                                                          i_0))))))))))))
                                                         (loop_0
                                                          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_1
                                                             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_1
                                                                  tst_1
                                                                  stack65_0))
                                                               (case-lambda
                                                                ((new-stack_0
                                                                  val_0)
                                                                 (if val_0
                                                                   (interpret_1
                                                                    thn_1
                                                                    new-stack_0
                                                                    return-mode63_0)
                                                                   (interpret_1
                                                                    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_1
                                                                    key_1
                                                                    stack65_0))
                                                                 (case-lambda
                                                                  ((k-stack_0
                                                                    k-val_0)
                                                                   (call-with-values
                                                                    (lambda ()
                                                                      (interpret_1
                                                                       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_1
                                                                          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_1
                                                                                body_0
                                                                                v-stack_0
                                                                                (hasheq
                                                                                 k-val_0
                                                                                 v-val_0))))
                                                                            (case-lambda
                                                                             ((stack_1
                                                                               v_0)
                                                                              (if (eq?
                                                                                   stack_1
                                                                                   'trampoline)
                                                                                v_0
                                                                                (lambda ()
                                                                                  (values
                                                                                   stack_1
                                                                                   v_0))))
                                                                             ((stack_1
                                                                               .
                                                                               vs_0)
                                                                              (lambda ()
                                                                                (apply
                                                                                 values
                                                                                 stack_1
                                                                                 vs_0))))))
                                                                          (with-continuation-mark*
                                                                           general
                                                                           k-val_0
                                                                           v-val_0
                                                                           (interpret_1
                                                                            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_1
                                                                 (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_2
                                                                         b_1))
                                                                    (call-with-values
                                                                     (lambda ()
                                                                       (call-with-values
                                                                        (lambda ()
                                                                          (interpret_1
                                                                           b_2
                                                                           stack65_0))
                                                                        (lambda (stack_1
                                                                                 .
                                                                                 vals_0)
                                                                          (values
                                                                           stack_1
                                                                           vals_0))))
                                                                     (case-lambda
                                                                      ((new-stack_0
                                                                        vs_0)
                                                                       (let ((len_0
                                                                              (length
                                                                               vs_0)))
                                                                         (letrec*
                                                                          ((loop_0
                                                                            (|#%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_3
                                                                                              (unsafe-vector*-ref
                                                                                               v_0
                                                                                               1)))
                                                                                         (let ((mask_1
                                                                                                mask_0))
                                                                                           (if (begin-unsafe
                                                                                                (bitwise-bit-set?
                                                                                                 mask_1
                                                                                                 len_0))
                                                                                             (interpret_1
                                                                                              b_3
                                                                                              (push-stack
                                                                                               new-stack_0
                                                                                               pos_1
                                                                                               vs_0
                                                                                               mask_1)
                                                                                              return-mode63_0)
                                                                                             (let ((app_0
                                                                                                    (cdr
                                                                                                     clauses_1)))
                                                                                               (loop_0
                                                                                                app_0
                                                                                                (fxior
                                                                                                 mask_1
                                                                                                 full-mask_0))))))))))))))
                                                                          (loop_0
                                                                           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_1
                                                                   (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_1
                                                                    b_1
                                                                    stack65_0
                                                                    #f)))))
                                                            (if (if (eq?
                                                                     'cwmp
                                                                     (unsafe-vector*-ref
                                                                      b64_0
                                                                      0))
                                                                  #t
                                                                  #f)
                                                              (let ((b_1
                                                                     (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_2
                                                                             b_1))
                                                                        (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_1
                                                                                b_2
                                                                                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_1
                                                                                                              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 ()
                                                                             (letrec*
                                                                              ((loop_0
                                                                                (|#%name|
                                                                                 loop
                                                                                 (lambda (i_0
                                                                                          stack_1)
                                                                                   (begin
                                                                                     (if (fx=
                                                                                          i_0
                                                                                          n_0)
                                                                                       (values
                                                                                        stack_1
                                                                                        '())
                                                                                       (call-with-values
                                                                                        (lambda ()
                                                                                          (loop_0
                                                                                           (fx+
                                                                                            i_0
                                                                                            1)
                                                                                           stack_1))
                                                                                        (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_2
                                                                                                        (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_3
                                                                                                              mask_2))
                                                                                                         (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))))))))))
                                                                              (loop_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_0
                                                                                            (|#%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 (begin-unsafe
                                                                                                              (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_0
                                                                                                                app_0
                                                                                                                app_1
                                                                                                                (fxior
                                                                                                                 full-mask_0
                                                                                                                 mask_2))))))
                                                                                                       (error
                                                                                                        'interp-match
                                                                                                        "no matching clause")))))))))
                                                                                          (loop_0
                                                                                           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_1
                                                                             (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_2
                                                                                   b_1)
                                                                                  (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_1
                                                                                     b_2
                                                                                     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_1
                                                                                 (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_1
                                                                                     b_1
                                                                                     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_1
                                                                                 (unsafe-vector*-ref
                                                                                  b64_0
                                                                                  2)))
                                                                            (let ((name_0
                                                                                   (unsafe-vector*-ref
                                                                                    b64_0
                                                                                    3)))
                                                                              (let ((b_2
                                                                                     b_1)
                                                                                    (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_1
                                                                                       b_2
                                                                                       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_1
                                                                                   (unsafe-vector*-ref
                                                                                    b64_0
                                                                                    2)))
                                                                              (let ((name_0
                                                                                     (unsafe-vector*-ref
                                                                                      b64_0
                                                                                      3)))
                                                                                (let ((b_2
                                                                                       b_1)
                                                                                      (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_1
                                                                                         b_2
                                                                                         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))))))))))
      (interpret_1
       (|#%name|
        interpret
        (case-lambda
         ((b_1 stack_1) (begin (interpret_0 b_1 stack_1 'values)))
         ((b_1 stack_1 return-mode63_0)
          (interpret_0 b_1 stack_1 return-mode63_0)))))
      (capture-closure_0
       (|#%name|
        capture-closure
        (lambda (close-vec_0 stack_1)
          (begin
            (let ((len_0 (unsafe-vector*-length close-vec_0)))
              (letrec*
               ((loop_0
                 (|#%name|
                  loop
                  (lambda (i_0 stack_2 captured_0)
                    (begin
                      (if (= i_0 len_0)
                        (values stack_2 captured_0)
                        (call-with-values
                         (lambda ()
                           (stack-ref
                            stack_2
                            (unsafe-vector*-ref close-vec_0 i_0)))
                         (case-lambda
                          ((val-stack_0 val_0)
                           (let ((app_0 (add1 i_0)))
                             (loop_0
                              app_0
                              val-stack_0
                              (stack-set captured_0 (- -1 i_0) val_0))))
                          (args
                           (raise-binding-result-arity-error 2 args))))))))))
               (loop_0 0 stack_1 #f)))))))
      (apply-function_0
       (|#%name|
        apply-function
        (lambda (b_1 captured_0 args_0)
          (begin
            (if (if (eq? 'lambda (unsafe-vector*-ref b_1 0)) #t #f)
              (let ((mask_0 (unsafe-vector*-ref b_1 1)))
                (let ((name_0 (unsafe-vector*-ref b_1 2)))
                  (let ((close-vec_0 (unsafe-vector*-ref b_1 3)))
                    (let ((b_2 (unsafe-vector*-ref b_1 4)))
                      (let ((close-vec_1 close-vec_0)
                            (name_1 name_0)
                            (mask_1 mask_0))
                        (interpret_1
                         b_2
                         (push-stack captured_0 0 args_0 mask_1)
                         #f))))))
              (error 'interp-match "no matching clause")))))))
     (if (vector? b_0)
       (if (eq? 'begin (unsafe-vector*-ref b_0 0))
         (let ((last_0 (sub1 (unsafe-vector*-length b_0))))
           (letrec*
            ((loop_0
              (|#%name|
               loop
               (lambda (i_0)
                 (begin
                   (let ((e_0 (unsafe-vector*-ref b_0 i_0)))
                     (if (= i_0 last_0)
                       (interpret_1 e_0 stack_0 #f)
                       (begin
                         (interpret_1 e_0 stack_0 #f)
                         (loop_0 (add1 i_0))))))))))
            (loop_0 1)))
         (interpret_1 b_0 stack_0 #f))
       (interpret_1 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?
  (lambda (e_0 size_0 serializable?_0)
    (letrec*
     ((leftover-size_0
       (|#%name|
        leftover-size
        (lambda (e_1 size_1)
          (begin
            (if (<= size_1 0)
              0
              (let ((hd_0
                     (let ((p_0 (unwrap e_1)))
                       (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_1)))) d_0)))
                    (body-leftover-size_0 body_0 (sub1 size_1)))
                  (if (if (eq? 'define-values hd_0)
                        (let ((a_0 (cdr (unwrap e_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)))
                                      (begin-unsafe
                                       (let ((app_0 (unwrap '())))
                                         (eq? app_0 (unwrap a_2)))))
                                    #f)))
                              #f)))
                        #f)
                    (let ((rhs_0
                           (let ((d_0 (cdr (unwrap e_1))))
                             (let ((d_1 (cdr (unwrap d_0))))
                               (let ((a_0 (car (unwrap d_1)))) a_0)))))
                      (leftover-size_0 rhs_0 (sub1 size_1)))
                    (if (if (eq? 'lambda hd_0)
                          (let ((a_0 (cdr (unwrap e_1))))
                            (let ((p_0 (unwrap a_0))) (if (pair? p_0) #t #f)))
                          #f)
                      (let ((body_0
                             (let ((d_0 (cdr (unwrap e_1))))
                               (let ((d_1 (cdr (unwrap d_0)))) d_1))))
                        (body-leftover-size_0 body_0 (sub1 size_1)))
                      (if (if (eq? 'case-lambda hd_0)
                            (let ((a_0 (cdr (unwrap e_1))))
                              (if (wrap-list? a_0)
                                (begin
                                  (letrec*
                                   ((for-loop_0
                                     (|#%name|
                                      for-loop
                                      (lambda (result_0 lst_0)
                                        (begin
                                          (if (not
                                               (begin-unsafe
                                                (null? (unwrap lst_0))))
                                            (let ((v_0
                                                   (if (begin-unsafe
                                                        (pair? (unwrap lst_0)))
                                                     (wrap-car lst_0)
                                                     lst_0)))
                                              (let ((rest_0
                                                     (if (begin-unsafe
                                                          (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 ((bodys_0
                               (let ((d_0 (cdr (unwrap e_1))))
                                 (let ((bodys_0
                                        (begin
                                          (letrec*
                                           ((for-loop_0
                                             (|#%name|
                                              for-loop
                                              (lambda (bodys_0 lst_0)
                                                (begin
                                                  (if (not
                                                       (begin-unsafe
                                                        (null?
                                                         (unwrap lst_0))))
                                                    (let ((v_0
                                                           (if (begin-unsafe
                                                                (pair?
                                                                 (unwrap
                                                                  lst_0)))
                                                             (wrap-car lst_0)
                                                             lst_0)))
                                                      (let ((rest_0
                                                             (if (begin-unsafe
                                                                  (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_0
                                                             bodys_1
                                                             rest_0)))))
                                                    bodys_0))))))
                                           (for-loop_0 null d_0)))))
                                   (reverse$1 bodys_0)))))
                          (body-leftover-size_0 bodys_0 (sub1 size_1)))
                        (if (if (eq? 'let-values hd_0)
                              (let ((a_0 (cdr (unwrap e_1))))
                                (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
                                                           (begin-unsafe
                                                            (null?
                                                             (unwrap lst_0))))
                                                        (let ((v_0
                                                               (if (begin-unsafe
                                                                    (pair?
                                                                     (unwrap
                                                                      lst_0)))
                                                                 (wrap-car
                                                                  lst_0)
                                                                 lst_0)))
                                                          (let ((rest_0
                                                                 (if (begin-unsafe
                                                                      (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)))
                                                                                        (begin-unsafe
                                                                                         (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_1))))
                               (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
                                                                (begin-unsafe
                                                                 (null?
                                                                  (unwrap
                                                                   lst_0))))
                                                             (let ((v_0
                                                                    (if (begin-unsafe
                                                                         (pair?
                                                                          (unwrap
                                                                           lst_0)))
                                                                      (wrap-car
                                                                       lst_0)
                                                                      lst_0)))
                                                               (let ((rest_0
                                                                      (if (begin-unsafe
                                                                           (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_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 ((app_0 (cons rhss_0 body_0)))
                               (body-leftover-size_0 app_0 (sub1 size_1))))
                            (args (raise-binding-result-arity-error 2 args))))
                          (if (if (eq? 'letrec-values hd_0)
                                (let ((a_0 (cdr (unwrap e_1))))
                                  (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
                                                             (begin-unsafe
                                                              (null?
                                                               (unwrap
                                                                lst_0))))
                                                          (let ((v_0
                                                                 (if (begin-unsafe
                                                                      (pair?
                                                                       (unwrap
                                                                        lst_0)))
                                                                   (wrap-car
                                                                    lst_0)
                                                                   lst_0)))
                                                            (let ((rest_0
                                                                   (if (begin-unsafe
                                                                        (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)))
                                                                                          (begin-unsafe
                                                                                           (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_1))))
                                 (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
                                                                  (begin-unsafe
                                                                   (null?
                                                                    (unwrap
                                                                     lst_0))))
                                                               (let ((v_0
                                                                      (if (begin-unsafe
                                                                           (pair?
                                                                            (unwrap
                                                                             lst_0)))
                                                                        (wrap-car
                                                                         lst_0)
                                                                        lst_0)))
                                                                 (let ((rest_0
                                                                        (if (begin-unsafe
                                                                             (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_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 ((app_0 (cons rhss_0 body_0)))
                                 (body-leftover-size_0 app_0 (sub1 size_1))))
                              (args
                               (raise-binding-result-arity-error 2 args))))
                            (if (if (eq? 'if hd_0)
                                  (let ((a_0 (cdr (unwrap e_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)))
                                                      (begin-unsafe
                                                       (let ((app_0
                                                              (unwrap '())))
                                                         (eq?
                                                          app_0
                                                          (unwrap a_3)))))
                                                    #f)))
                                              #f)))
                                        #f)))
                                  #f)
                              (call-with-values
                               (lambda ()
                                 (let ((d_0 (cdr (unwrap e_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)
                                 (leftover-size_0
                                  els_0
                                  (leftover-size_0
                                   thn_0
                                   (leftover-size_0 tst_0 (sub1 size_1)))))
                                (args
                                 (raise-binding-result-arity-error 3 args))))
                              (if (if (eq? 'with-continuation-mark* hd_0)
                                    (let ((a_0 (cdr (unwrap e_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)))
                                                              (begin-unsafe
                                                               (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_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)
                                   (leftover-size_0
                                    body_0
                                    (leftover-size_0
                                     val_0
                                     (leftover-size_0 key_0 (sub1 size_1)))))
                                  (args
                                   (raise-binding-result-arity-error 3 args))))
                                (if (if (eq? 'begin-unsafe hd_0) #t #f)
                                  (let ((body_0
                                         (let ((d_0 (cdr (unwrap e_1)))) d_0)))
                                    (body-leftover-size_0
                                     body_0
                                     (sub1 size_1)))
                                  (if (if (eq? 'begin0 hd_0) #t #f)
                                    (let ((body_0
                                           (let ((d_0 (cdr (unwrap e_1))))
                                             d_0)))
                                      (body-leftover-size_0
                                       body_0
                                       (sub1 size_1)))
                                    (if (if (eq? 'quote hd_0)
                                          (let ((a_0 (cdr (unwrap e_1))))
                                            (let ((p_0 (unwrap a_0)))
                                              (if (pair? p_0)
                                                (let ((a_1 (cdr p_0)))
                                                  (begin-unsafe
                                                   (let ((app_0 (unwrap '())))
                                                     (eq?
                                                      app_0
                                                      (unwrap a_1)))))
                                                #f)))
                                          #f)
                                      (let ((v_0
                                             (let ((d_0 (cdr (unwrap e_1))))
                                               (let ((a_0 (car (unwrap d_0))))
                                                 a_0))))
                                        (sub1 size_1))
                                      (if (if (eq? 'set! hd_0)
                                            (let ((a_0 (cdr (unwrap e_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)))
                                                          (begin-unsafe
                                                           (let ((app_0
                                                                  (unwrap
                                                                   '())))
                                                             (eq?
                                                              app_0
                                                              (unwrap a_2)))))
                                                        #f)))
                                                  #f)))
                                            #f)
                                        (call-with-values
                                         (lambda ()
                                           (let ((d_0 (cdr (unwrap e_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)
                                           (leftover-size_0
                                            rhs_0
                                            (sub1 size_1)))
                                          (args
                                           (raise-binding-result-arity-error
                                            2
                                            args))))
                                        (if (if (eq?
                                                 '|#%variable-reference|
                                                 hd_0)
                                              #t
                                              #f)
                                          (sub1 size_1)
                                          (if (let ((p_0 (unwrap e_1)))
                                                (if (pair? p_0) #t #f))
                                            (body-leftover-size_0 e_1 size_1)
                                            (sub1 size_1)))))))))))))))))))))
      (body-leftover-size_0
       (|#%name|
        body-leftover-size
        (lambda (body_0 size_1)
          (begin
            (begin
              (letrec*
               ((for-loop_0
                 (|#%name|
                  for-loop
                  (lambda (size_2 lst_0)
                    (begin
                      (if (not (begin-unsafe (null? (unwrap lst_0))))
                        (let ((e_1
                               (if (begin-unsafe (pair? (unwrap lst_0)))
                                 (wrap-car lst_0)
                                 lst_0)))
                          (let ((rest_0
                                 (if (begin-unsafe (pair? (unwrap lst_0)))
                                   (wrap-cdr lst_0)
                                   null)))
                            (let ((e_2 e_1))
                              (let ((next-k-proc_0
                                     (|#%name|
                                      next-k-proc
                                      (lambda (size_3)
                                        (begin (for-loop_0 size_3 rest_0))))))
                                (if (<= size_2 0)
                                  size_2
                                  (let ((size_3 (leftover-size_0 e_2 size_2)))
                                    (begin-unsafe
                                     (begin (for-loop_0 size_3 rest_0)))))))))
                        size_2))))))
               (for-loop_0 size_1 body_0))))))))
     (letrec*
      ((s-expr-leftover-size_0
        (|#%name|
         s-expr-leftover-size
         (lambda (v_0 size_1)
           (begin
             (if (<= size_1 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_1)))))
                 (if (box? v_0)
                   (let ((app_0 (unbox v_0)))
                     (s-expr-leftover-size_0 app_0 (sub1 size_1)))
                   (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
                          (letrec*
                           ((for-loop_0
                             (|#%name|
                              for-loop
                              (lambda (size_2 pos_0)
                                (begin
                                  (if (unsafe-fx< pos_0 len_0)
                                    (let ((v_1
                                           (unsafe-vector-ref vec_0 pos_0)))
                                      (let ((next-k-proc_0
                                             (|#%name|
                                              next-k-proc
                                              (lambda (size_3)
                                                (begin
                                                  (for-loop_0
                                                   size_3
                                                   (unsafe-fx+ 1 pos_0)))))))
                                        (if (<= size_2 0)
                                          size_2
                                          (let ((size_3
                                                 (s-expr-leftover-size_0
                                                  v_1
                                                  size_2)))
                                            (next-k-proc_0 size_3)))))
                                    size_2))))))
                           (for-loop_0 (sub1 size_1) 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_1)
                       (if (hash? v_0)
                         (begin
                           (letrec*
                            ((for-loop_0
                              (|#%name|
                               for-loop
                               (lambda (size_2 i_0)
                                 (begin
                                   (if i_0
                                     (call-with-values
                                      (lambda ()
                                        (hash-iterate-key+value v_0 i_0))
                                      (case-lambda
                                       ((k_0 v_1)
                                        (let ((next-k-proc_0
                                               (|#%name|
                                                next-k-proc
                                                (lambda (size_3)
                                                  (begin
                                                    (for-loop_0
                                                     size_3
                                                     (hash-iterate-next
                                                      v_0
                                                      i_0)))))))
                                          (if (<= size_2 0)
                                            size_2
                                            (let ((size_3
                                                   (s-expr-leftover-size_0
                                                    v_1
                                                    (s-expr-leftover-size_0
                                                     k_0
                                                     size_2))))
                                              (next-k-proc_0 size_3)))))
                                       (args
                                        (raise-binding-result-arity-error
                                         2
                                         args))))
                                     size_2))))))
                            (let ((app_0 (sub1 size_1)))
                              (for-loop_0 app_0 (hash-iterate-first v_0)))))
                         (sub1 size_1))))))))))))
      (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 body_0 size_0) 0))
          (error 'match "failed ~e" e_0)))))))
(define ->fasl
  (let ((->fasl_0
         (|#%name|
          ->fasl
          (lambda (v2_0 handle-fail1_0)
            (begin (s-exp->fasl.1 #f handle-fail1_0 #f #f v2_0 #f))))))
    (case-lambda
     ((v_0) (->fasl_0 v_0 #f))
     ((v_0 handle-fail1_0) (->fasl_0 v_0 handle-fail1_0)))))
(define fasl-> (lambda (f_0) (fasl->s-exp.1 #t unsafe-undefined #f f_0)))
