(
(2)
(make-vector)
(gset __primitives)
(pop)
(gvar __primitives)
(0)
(proc
  (args 1)
  (lvar 0 0 n1)
  (car)
  (return)
  (name ())
)
(vector-set!)
(pop)
(gvar __primitives)
(1)
(proc
  (args 1)
  (lvar 0 0 n1)
  (cdr)
  (return)
  (name ())
)
(vector-set!)
(proc
  (args 1)
  (lvar 0 0 x)
  (0)
  (<)
  (bfl () 669)
  (0)
  (lvar 0 0 x)
  (-)
  (return)
  669
  (lvar 0 0 x)
  (return)
  (name abs)
)
(gset abs)
(pop)
(proc
  (argsd 0)
  (())
  (())
  (())
  (())
  (())
  (())
  (())
  (())
  (())
  (proc
    (args 9)
    (lvar 1 0 args)
    (null?)
    (bfl () 671)
    (const stdin)
    (br () 672)
    671
    (lvar 1 0 args)
    (car)
    672
    (lset 0 0 port)
    (pop)
    (())
    (lset 0 1 token-type)
    (pop)
    (0)
    (lset 0 2 paren-level)
    (pop)
    (const #\space)
    (lset 0 3 ch)
    (pop)
    (const #\space)
    (lset 0 4 previous-ch)
    (pop)
    (const 9)
    (integer->char)
    (lset 0 5 tab-char)
    (pop)
    (const 13)
    (integer->char)
    (lset 0 6 carriage-return)
    (pop)
    (const #\space)
    (const #\newline)
    (lvar 0 5 tab-char)
    (lvar 0 6 carriage-return)
    (())
    (cons)
    (cons)
    (cons)
    (cons)
    (lset 0 7 white-space)
    (pop)
    (proc
      (args 0)
      (())
      (())
      (())
      (())
      (())
      (())
      (proc
        (args 6)
        (proc
          (args 1)
          (lvar 0 0 l)
          (length)
          (proc
            (args 1)
            (lvar 0 0 size)
            (make-vector)
            (proc
              (args 1)
              (save () 673)
              (())
              (proc
                (args 1)
                (proc
                  (args 1)
                  (lvar 0 0 i)
                  (lvar 3 0 size)
                  (=)
                  (bfl () 674)
                  (())
                  (return)
                  674
                  (lvar 2 0 v)
                  (lvar 0 0 i)
                  (lvar 4 0 l)
                  (car)
                  (vector-set!)
                  (pop)
                  (lvar 4 0 l)
                  (cdr)
                  (lset 4 0 l)
                  (pop)
                  (lvar 0 0 i)
                  (1)
                  (+)
                  (lvar 1 0 loop)
                  (callj 1)
                  (name loop)
                )
                (lset 0 0 loop)
                (pop)
                (0)
                (lvar 0 0 loop)
                (callj 1)
                (name ())
              )
              (callj 1)
              673
              (pop)
              (lvar 0 0 v)
              (return)
              (name ())
            )
            (callj 1)
            (name ())
          )
          (callj 1)
          (name my-list->vector)
        )
        (lset 0 0 my-list->vector)
        (pop)
        (proc
          (args 0)
          (())
          (())
          (())
          (())
          (())
          (())
          (())
          (())
          (())
          (())
          (())
          (())
          (())
          (())
          (())
          (())
          (())
          (proc
            (args 17)
            (())
            (lset 0 0 token)
            (pop)
            (())
            (lset 0 1 token-list)
            (pop)
            (())
            (lset 0 2 token-new)
            (pop)
            (())
            (lset 0 3 token-tail)
            (pop)
            (proc
              (args 0)
              (lvar 5 3 ch)
              (char-alphabetic?)
              (proc
                (args 1)
                (lvar 0 0 g:::2)
                (bfl () 676)
                (lvar 0 0 g:::2)
                (return)
                676
                (lvar 6 3 ch)
                (char-numeric?)
                (return)
                (name ())
              )
              (callj 1)
              (name char-alpha-numeric?)
            )
            (lset 0 4 char-alpha-numeric?)
            (pop)
            (proc
              (args 0)
              (save () 678)
              (())
              (proc
                (args 1)
                (proc
                  (args 0)
                  (save () 679)
                  (lvar 3 4 char-alpha-numeric?)
                  (callj 0)
                  679
                  (bfl () 682)
                  (save () 680)
                  (lvar 3 6 get-ch)
                  (callj 0)
                  680
                  (pop)
                  (save () 681)
                  (lvar 3 5 skip-past-alpha)
                  (callj 0)
                  681
                  (pop)
                  (lvar 1 0 loop)
                  (callj 0)
                  682
                  (())
                  (return)
                  (name loop)
                )
                (lset 0 0 loop)
                (pop)
                (lvar 0 0 loop)
                (return)
                (name ())
              )
              (callj 1)
              678
              (callj 0)
              (name skip-past-alpha)
            )
            (lset 0 5 skip-past-alpha)
            (pop)
            (proc
              (args 0)
              (lvar 5 0 port)
              (const stdin)
              (eq?)
              (bfl () 684)
              (read-char)
              (lset 5 3 ch)
              (pop)
              (br () 685)
              684
              (lvar 5 0 port)
              (readcharfile)
              (lset 5 3 ch)
              (pop)
              685
              (lvar 5 3 ch)
              (const #\newline)
              (char=?)
              (bfl () 686)
              (const #\space)
              (lset 5 3 ch)
              (return)
              686
              (())
              (return)
              (name get-ch)
            )
            (lset 0 6 get-ch)
            (pop)
            (proc
              (args 0)
              (lvar 5 0 port)
              (const stdin)
              (eq?)
              (bfl () 688)
              (read-char)
              (lset 5 3 ch)
              (return)
              688
              (lvar 5 0 port)
              (readcharfile)
              (lset 5 3 ch)
              (return)
              (name get-ch-no-newline)
            )
            (lset 0 7 get-ch-no-newline)
            (pop)
            (proc
              (args 0)
              (lvar 5 3 ch)
              (const #\newline)
              (char=?)
              (bfl () 691)
              (lvar 1 6 get-ch)
              (callj 0)
              691
              (save () 690)
              (lvar 1 7 get-ch-no-newline)
              (callj 0)
              690
              (pop)
              (lvar 1 8 skip-line)
              (callj 0)
              (name skip-line)
            )
            (lset 0 8 skip-line)
            (pop)
            (proc
              (args 0)
              (lvar 5 3 ch)
              (eof-object?)
              (bfl () 699)
              (())
              (return)
              699
              (lvar 5 3 ch)
              (const #\;)
              (char=?)
              (bfl () 697)
              (save () 693)
              (lvar 1 8 skip-line)
              (callj 0)
              693
              (pop)
              (lvar 1 9 skip-blanks)
              (callj 0)
              697
              (lvar 5 3 ch)
              (lvar 5 7 white-space)
              (memq)
              (bfl () 695)
              (save () 694)
              (lvar 1 6 get-ch)
              (callj 0)
              694
              (pop)
              (lvar 1 9 skip-blanks)
              (callj 0)
              695
              (())
              (return)
              (name skip-blanks)
            )
            (lset 0 9 skip-blanks)
            (pop)
            (proc
              (args 0)
              (lvar 1 3 token-tail)
              (lvar 5 3 ch)
              (set-car!)
              (pop)
              (lvar 5 3 ch)
              (lset 5 4 previous-ch)
              (pop)
              (lvar 1 6 get-ch)
              (callj 0)
              (name replace-last-ch)
            )
            (lset 0 10 replace-last-ch)
            (pop)
            (proc
              (args 0)
              (lvar 5 3 ch)
              (())
              (cons)
              (lset 1 2 token-new)
              (pop)
              (lvar 1 1 token-list)
              (null?)
              (bfl () 701)
              (lvar 1 2 token-new)
              (lset 1 1 token-list)
              (pop)
              (lvar 1 2 token-new)
              (lset 1 3 token-tail)
              (pop)
              (br () 702)
              701
              (lvar 1 3 token-tail)
              (lvar 1 2 token-new)
              (set-cdr!)
              (pop)
              (lvar 1 3 token-tail)
              (cdr)
              (lset 1 3 token-tail)
              (pop)
              702
              (lvar 5 3 ch)
              (lset 5 4 previous-ch)
              (pop)
              (lvar 1 6 get-ch)
              (callj 0)
              (name append-to-list)
            )
            (lset 0 11 append-to-list)
            (pop)
            (proc
              (args 0)
              (save () 703)
              (lvar 1 6 get-ch)
              (callj 0)
              703
              (pop)
              (lvar 5 3 ch)
              (const (#\t #\f))
              (member)
              (bfl () 718)
              (const boolean-tok)
              (lset 5 1 token-type)
              (pop)
              (lvar 5 3 ch)
              (const #\t)
              (char=?)
              (bfl () 704)
              (#t)
              (lset 1 0 token)
              (pop)
              (br () 705)
              704
              (#f)
              (lset 1 0 token)
              (pop)
              705
              (lvar 1 6 get-ch)
              (callj 0)
              718
              (lvar 5 3 ch)
              (const #\\)
              (char=?)
              (bfl () 716)
              (const char-tok)
              (lset 5 1 token-type)
              (pop)
              (save () 706)
              (lvar 1 6 get-ch)
              (callj 0)
              706
              (pop)
              (lvar 5 3 ch)
              (lset 1 0 token)
              (pop)
              (lvar 5 3 ch)
              (proc
                (args 1)
                (save () 707)
                (lvar 2 6 get-ch)
                (callj 0)
                707
                (pop)
                (lvar 0 0 first-ch)
                (proc
                  (args 1)
                  (lvar 0 0 g:::3)
                  (const #\s)
                  (eqv?)
                  (bfl () 714)
                  (lvar 7 3 ch)
                  (const #\p)
                  (char=?)
                  (bfl () 708)
                  (const #\space)
                  (lset 3 0 token)
                  (pop)
                  (lvar 3 5 skip-past-alpha)
                  (callj 0)
                  708
                  (())
                  (return)
                  714
                  (lvar 0 0 g:::3)
                  (const #\n)
                  (eqv?)
                  (bfl () 712)
                  (lvar 7 3 ch)
                  (const #\e)
                  (char=?)
                  (bfl () 710)
                  (const #\newline)
                  (lset 3 0 token)
                  (pop)
                  (lvar 3 5 skip-past-alpha)
                  (callj 0)
                  710
                  (())
                  (return)
                  712
                  (#f)
                  (return)
                  (name ())
                )
                (callj 1)
                (name ())
              )
              (callj 1)
              716
              (const vector-tok)
              (lset 5 1 token-type)
              (return)
              (name get-vector)
            )
            (lset 0 12 get-vector)
            (pop)
            (proc
              (args 0)
              (save () 720)
              (lvar 1 6 get-ch)
              (callj 0)
              720
              (pop)
              (save () 721)
              (save () 722)
              (())
              (proc
                (args 1)
                (proc
                  (args 0)
                  (save () 723)
                  (lvar 7 3 ch)
                  (const #\")
                  (char=?)
                  (proc
                    (args 1)
                    (lvar 0 0 g:::4)
                    (bfl () 724)
                    (lvar 0 0 g:::4)
                    (return)
                    724
                    (lvar 8 3 ch)
                    (eof-object?)
                    (return)
                    (name ())
                  )
                  (callj 1)
                  723
                  (not)
                  (bfl () 730)
                  (save () 726)
                  (lvar 3 11 append-to-list)
                  (callj 0)
                  726
                  (pop)
                  (lvar 7 4 previous-ch)
                  (const #\\)
                  (char=?)
                  (bfl () 728)
                  (save () 727)
                  (lvar 3 10 replace-last-ch)
                  (callj 0)
                  727
                  (pop)
                  (br () 729)
                  728
                  729
                  (lvar 1 0 loop)
                  (callj 0)
                  730
                  (())
                  (return)
                  (name loop)
                )
                (lset 0 0 loop)
                (pop)
                (lvar 0 0 loop)
                (return)
                (name ())
              )
              (callj 1)
              722
              (callj 0)
              721
              (pop)
              (save () 732)
              (lvar 1 6 get-ch)
              (callj 0)
              732
              (pop)
              (const string-tok)
              (lset 5 1 token-type)
              (pop)
              (save () 733)
              (lvar 1 1 token-list)
              (gvar list->string)
              (callj 1)
              733
              (lset 1 0 token)
              (return)
              (name get-string)
            )
            (lset 0 13 get-string)
            (pop)
            (proc
              (args 1)
              (lvar 0 0 token)
              (lvar 0 0 token)
              (length)
              (1)
              (-)
              (list-tail)
              (proc
                (args 1)
                (lvar 0 0 token-tail)
                (const #\e)
                (const #\0)
                (())
                (cons)
                (cons)
                (set-cdr!)
                (return)
                (name ())
              )
              (callj 1)
              (name append-e0!)
            )
            (lset 0 14 append-e0!)
            (pop)
            (proc
              (args 1)
              (())
              (())
              (())
              (())
              (())
              (())
              (())
              (())
              (())
              (())
              (())
              (())
              (())
              (())
              (())
              (proc
                (args 15)
                (const #\space)
                (lset 0 0 ch)
                (pop)
                (0)
                (integer->char)
                (lset 0 1 end-of-token)
                (pop)
                (#f)
                (lset 0 2 return)
                (pop)
                (#f)
                (lset 0 3 has-decimal)
                (pop)
                (#f)
                (lset 0 4 has-e)
                (pop)
                (lvar 1 0 token)
                (lset 0 5 save-token)
                (pop)
                (proc
                  (args 0)
                  (lvar 2 0 token)
                  (null?)
                  (bfl () 741)
                  (lvar 1 1 end-of-token)
                  (lset 1 0 ch)
                  (return)
                  741
                  (lvar 2 0 token)
                  (car)
                  (lset 1 0 ch)
                  (pop)
                  (lvar 1 0 ch)
                  (const #\.)
                  (char=?)
                  (bfl () 739)
                  (#t)
                  (lset 1 3 has-decimal)
                  (pop)
                  (br () 740)
                  739
                  (save () 734)
                  (lvar 1 0 ch)
                  (const #\e)
                  (char=?)
                  (proc
                    (args 1)
                    (lvar 0 0 g:::5)
                    (bfl () 735)
                    (lvar 0 0 g:::5)
                    (return)
                    735
                    (lvar 2 0 ch)
                    (const #\E)
                    (char=?)
                    (return)
                    (name ())
                  )
                  (callj 1)
                  734
                  (bfl () 737)
                  (#t)
                  (lset 1 4 has-e)
                  (pop)
                  (br () 738)
                  737
                  738
                  740
                  (lvar 2 0 token)
                  (cdr)
                  (lset 2 0 token)
                  (return)
                  (name next-ch)
                )
                (lset 0 6 next-ch)
                (pop)
                (proc
                  (args 0)
                  (save () 743)
                  (lvar 1 6 next-ch)
                  (callj 0)
                  743
                  (pop)
                  (lvar 1 0 ch)
                  (const #\-)
                  (char=?)
                  (bfl () 748)
                  (lvar 1 8 state-1)
                  (callj 0)
                  748
                  (lvar 1 0 ch)
                  (char-numeric?)
                  (bfl () 746)
                  (lvar 1 9 state-2)
                  (callj 0)
                  746
                  (lvar 1 0 ch)
                  (const #\.)
                  (char=?)
                  (bfl () 744)
                  (lvar 1 10 state-3)
                  (callj 0)
                  744
                  (())
                  (return)
                  (name state-0)
                )
                (lset 0 7 state-0)
                (pop)
                (proc
                  (args 0)
                  (save () 750)
                  (lvar 1 6 next-ch)
                  (callj 0)
                  750
                  (pop)
                  (lvar 1 0 ch)
                  (const #\.)
                  (char=?)
                  (bfl () 753)
                  (lvar 1 10 state-3)
                  (callj 0)
                  753
                  (lvar 1 0 ch)
                  (char-numeric?)
                  (bfl () 751)
                  (lvar 1 9 state-2)
                  (callj 0)
                  751
                  (())
                  (return)
                  (name state-1)
                )
                (lset 0 8 state-1)
                (pop)
                (proc
                  (args 0)
                  (save () 755)
                  (lvar 1 6 next-ch)
                  (callj 0)
                  755
                  (pop)
                  (lvar 1 0 ch)
                  (const #\.)
                  (char=?)
                  (bfl () 765)
                  (lvar 1 10 state-3)
                  (callj 0)
                  765
                  (lvar 1 0 ch)
                  (char-numeric?)
                  (bfl () 763)
                  (lvar 1 9 state-2)
                  (callj 0)
                  763
                  (save () 756)
                  (lvar 1 0 ch)
                  (const #\e)
                  (char=?)
                  (proc
                    (args 1)
                    (lvar 0 0 g:::6)
                    (bfl () 757)
                    (lvar 0 0 g:::6)
                    (return)
                    757
                    (lvar 2 0 ch)
                    (const #\E)
                    (char=?)
                    (return)
                    (name ())
                  )
                  (callj 1)
                  756
                  (bfl () 761)
                  (lvar 1 11 state-4)
                  (callj 0)
                  761
                  (lvar 1 0 ch)
                  (lvar 1 1 end-of-token)
                  (char=?)
                  (bfl () 759)
                  (lvar 1 14 state-7)
                  (callj 0)
                  759
                  (())
                  (return)
                  (name state-2)
                )
                (lset 0 9 state-2)
                (pop)
                (proc
                  (args 0)
                  (save () 767)
                  (lvar 1 6 next-ch)
                  (callj 0)
                  767
                  (pop)
                  (save () 768)
                  (lvar 1 0 ch)
                  (const #\e)
                  (char=?)
                  (proc
                    (args 1)
                    (lvar 0 0 g:::7)
                    (bfl () 769)
                    (lvar 0 0 g:::7)
                    (return)
                    769
                    (lvar 2 0 ch)
                    (const #\E)
                    (char=?)
                    (return)
                    (name ())
                  )
                  (callj 1)
                  768
                  (bfl () 775)
                  (lvar 1 11 state-4)
                  (callj 0)
                  775
                  (lvar 1 0 ch)
                  (char-numeric?)
                  (bfl () 773)
                  (lvar 1 10 state-3)
                  (callj 0)
                  773
                  (lvar 1 0 ch)
                  (lvar 1 1 end-of-token)
                  (char=?)
                  (bfl () 771)
                  (lvar 1 14 state-7)
                  (callj 0)
                  771
                  (())
                  (return)
                  (name state-3)
                )
                (lset 0 10 state-3)
                (pop)
                (proc
                  (args 0)
                  (save () 777)
                  (lvar 1 6 next-ch)
                  (callj 0)
                  777
                  (pop)
                  (save () 778)
                  (lvar 1 0 ch)
                  (const #\+)
                  (char=?)
                  (proc
                    (args 1)
                    (lvar 0 0 g:::8)
                    (bfl () 779)
                    (lvar 0 0 g:::8)
                    (return)
                    779
                    (lvar 2 0 ch)
                    (const #\-)
                    (char=?)
                    (return)
                    (name ())
                  )
                  (callj 1)
                  778
                  (bfl () 783)
                  (lvar 1 12 state-5)
                  (callj 0)
                  783
                  (lvar 1 0 ch)
                  (char-numeric?)
                  (bfl () 781)
                  (lvar 1 13 state-6)
                  (callj 0)
                  781
                  (())
                  (return)
                  (name state-4)
                )
                (lset 0 11 state-4)
                (pop)
                (proc
                  (args 0)
                  (save () 785)
                  (lvar 1 6 next-ch)
                  (callj 0)
                  785
                  (pop)
                  (lvar 1 0 ch)
                  (char-numeric?)
                  (bfl () 786)
                  (lvar 1 13 state-6)
                  (callj 0)
                  786
                  (())
                  (return)
                  (name state-5)
                )
                (lset 0 12 state-5)
                (pop)
                (proc
                  (args 0)
                  (save () 788)
                  (lvar 1 6 next-ch)
                  (callj 0)
                  788
                  (pop)
                  (lvar 1 0 ch)
                  (lvar 1 1 end-of-token)
                  (char=?)
                  (bfl () 791)
                  (lvar 1 14 state-7)
                  (callj 0)
                  791
                  (lvar 1 0 ch)
                  (char-numeric?)
                  (bfl () 789)
                  (lvar 1 13 state-6)
                  (callj 0)
                  789
                  (())
                  (return)
                  (name state-6)
                )
                (lset 0 13 state-6)
                (pop)
                (proc
                  (args 0)
                  (lvar 1 3 has-decimal)
                  (bfl () 793)
                  (lvar 1 4 has-e)
                  (not)
                  (br () 794)
                  793
                  (#f)
                  794
                  (bfl () 796)
                  (save () 795)
                  (lvar 1 5 save-token)
                  (lvar 3 14 append-e0!)
                  (callj 1)
                  795
                  (pop)
                  (br () 797)
                  796
                  797
                  (#t)
                  (lset 1 2 return)
                  (return)
                  (name state-7)
                )
                (lset 0 14 state-7)
                (pop)
                (save () 798)
                (lvar 0 7 state-0)
                (callj 0)
                798
                (pop)
                (lvar 0 2 return)
                (return)
                (name ())
              )
              (callj 15)
              (name number-token?)
            )
            (lset 0 15 number-token?)
            (pop)
            (proc
              (args 0)
              (save () 799)
              (save () 800)
              (())
              (proc
                (args 1)
                (proc
                  (args 0)
                  (save () 801)
                  (lvar 7 3 ch)
                  (lvar 7 7 white-space)
                  (memq)
                  (proc
                    (args 1)
                    (lvar 0 0 g:::9)
                    (bfl () 804)
                    (lvar 0 0 g:::9)
                    (return)
                    804
                    (lvar 8 3 ch)
                    (const (#\( #\)))
                    (memq)
                    (proc
                      (args 1)
                      (lvar 0 0 g:::10)
                      (bfl () 802)
                      (lvar 0 0 g:::10)
                      (return)
                      802
                      (lvar 9 3 ch)
                      (eof-object?)
                      (return)
                      (name ())
                    )
                    (callj 1)
                    (name ())
                  )
                  (callj 1)
                  801
                  (not)
                  (bfl () 807)
                  (lvar 7 3 ch)
                  (char-downcase)
                  (lset 7 3 ch)
                  (pop)
                  (save () 806)
                  (lvar 3 11 append-to-list)
                  (callj 0)
                  806
                  (pop)
                  (lvar 1 0 loop)
                  (callj 0)
                  807
                  (())
                  (return)
                  (name loop)
                )
                (lset 0 0 loop)
                (pop)
                (lvar 0 0 loop)
                (return)
                (name ())
              )
              (callj 1)
              800
              (callj 0)
              799
              (pop)
              (lvar 1 1 token-list)
              (const (#\.))
              (equal?)
              (bfl () 814)
              (const dot-tok)
              (lset 5 1 token-type)
              (return)
              814
              (const symbol-tok)
              (lset 5 1 token-type)
              (pop)
              (save () 809)
              (lvar 1 1 token-list)
              (lvar 1 15 number-token?)
              (callj 1)
              809
              (bfl () 812)
              (save () 810)
              (lvar 1 1 token-list)
              (gvar list->string)
              (callj 1)
              810
              (string->number)
              (lset 1 0 token)
              (return)
              812
              (save () 811)
              (lvar 1 1 token-list)
              (gvar list->string)
              (callj 1)
              811
              (string->symbol)
              (lset 1 0 token)
              (return)
              (name get-symbol)
            )
            (lset 0 16 get-symbol)
            (pop)
            (save () 816)
            (lvar 0 9 skip-blanks)
            (callj 0)
            816
            (pop)
            (lvar 4 3 ch)
            (eof-object?)
            (bfl () 837)
            (const eof-tok)
            (lset 4 1 token-type)
            (pop)
            (lvar 4 3 ch)
            (lset 0 0 token)
            (pop)
            (br () 838)
            837
            (save () 817)
            (lvar 4 3 ch)
            (const ((#\( opar-tok) (#\) cpar-tok) (#\' tic-tok) (#\, comma-tok) (#\` backtic-tok) (#\# vector-tok) (#\" string-tok)))
            (assv)
            (proc
              (args 1)
              (lvar 0 0 match)
              (bfl () 835)
              (lvar 0 0 match)
              (cadr)
              (proc
                (args 1)
                (lvar 0 0 g:::11)
                (const (opar-tok cpar-tok tic-tok backtic-tok))
                (memv)
                (bfl () 833)
                (lvar 1 0 match)
                (cadr)
                (lset 6 1 token-type)
                (pop)
                (lvar 6 3 ch)
                (lset 2 0 token)
                (pop)
                (lvar 6 1 token-type)
                (const opar-tok)
                (eq?)
                (bfl () 822)
                (lvar 6 2 paren-level)
                (1)
                (+)
                (lset 6 2 paren-level)
                (pop)
                (lvar 2 6 get-ch)
                (callj 0)
                822
                (lvar 6 1 token-type)
                (const cpar-tok)
                (eq?)
                (bfl () 820)
                (lvar 6 2 paren-level)
                (1)
                (-)
                (lset 6 2 paren-level)
                (pop)
                (lvar 6 2 paren-level)
                (0)
                (>)
                (bfl () 818)
                (lvar 2 6 get-ch)
                (callj 0)
                818
                (())
                (return)
                820
                (lvar 2 6 get-ch)
                (callj 0)
                833
                (lvar 0 0 g:::11)
                (const comma-tok)
                (eqv?)
                (bfl () 831)
                (lvar 1 0 match)
                (cadr)
                (lset 6 1 token-type)
                (pop)
                (lvar 6 3 ch)
                (lset 2 0 token)
                (pop)
                (save () 824)
                (lvar 2 6 get-ch)
                (callj 0)
                824
                (pop)
                (lvar 6 3 ch)
                (const #\@)
                (char=?)
                (bfl () 825)
                (const at-tok)
                (lset 6 1 token-type)
                (pop)
                (lvar 6 3 ch)
                (lset 2 0 token)
                (pop)
                (lvar 2 6 get-ch)
                (callj 0)
                825
                (())
                (return)
                831
                (lvar 0 0 g:::11)
                (const vector-tok)
                (eqv?)
                (bfl () 829)
                (lvar 2 12 get-vector)
                (callj 0)
                829
                (lvar 0 0 g:::11)
                (const string-tok)
                (eqv?)
                (bfl () 827)
                (lvar 2 13 get-string)
                (callj 0)
                827
                (#f)
                (return)
                (name ())
              )
              (callj 1)
              835
              (lvar 1 16 get-symbol)
              (callj 0)
              (name ())
            )
            (callj 1)
            817
            (pop)
            838
            (lvar 0 0 token)
            (return)
            (name ())
          )
          (callj 17)
          (name get-token)
        )
        (lset 0 1 get-token)
        (pop)
        (proc
          (args 1)
          (const "bad sexpr")
          (lvar 0 0 sexpr)
          (gvar error)
          (callj 2)
          (name bad-sexpr)
        )
        (lset 0 2 bad-sexpr)
        (pop)
        (proc
          (args 0)
          (save () 839)
          (lvar 1 1 get-token)
          (callj 0)
          839
          (proc
            (args 1)
            (lvar 4 1 token-type)
            (proc
              (args 1)
              (lvar 0 0 g:::12)
              (const opar-tok)
              (eqv?)
              (bfl () 864)
              (save () 840)
              (lvar 3 4 read-list)
              (callj 0)
              840
              (lset 1 0 token)
              (pop)
              (save () 841)
              (lvar 3 1 get-token)
              (callj 0)
              841
              (pop)
              (lvar 1 0 token)
              (return)
              864
              (lvar 0 0 g:::12)
              (const tic-tok)
              (eqv?)
              (bfl () 862)
              (const quote)
              (save () 842)
              (lvar 5 8 readin)
              (callj 0)
              842
              (())
              (cons)
              (cons)
              (())
              (cons)
              (lset 1 0 token)
              (pop)
              (lvar 1 0 token)
              (return)
              862
              (lvar 0 0 g:::12)
              (const backtic-tok)
              (eqv?)
              (bfl () 860)
              (const quasiquote)
              (save () 843)
              (lvar 5 8 readin)
              (callj 0)
              843
              (())
              (cons)
              (cons)
              (())
              (cons)
              (lset 1 0 token)
              (pop)
              (lvar 1 0 token)
              (return)
              860
              (lvar 0 0 g:::12)
              (const comma-tok)
              (eqv?)
              (bfl () 858)
              (const unquote)
              (save () 844)
              (lvar 5 8 readin)
              (callj 0)
              844
              (())
              (cons)
              (cons)
              (())
              (cons)
              (lset 1 0 token)
              (pop)
              (lvar 1 0 token)
              (return)
              858
              (lvar 0 0 g:::12)
              (const at-tok)
              (eqv?)
              (bfl () 856)
              (const unquote-splicing)
              (save () 845)
              (lvar 5 8 readin)
              (callj 0)
              845
              (())
              (cons)
              (cons)
              (())
              (cons)
              (lset 1 0 token)
              (pop)
              (lvar 1 0 token)
              (return)
              856
              (save () 846)
              (lvar 5 1 token-type)
              (const symbol-tok)
              (eq?)
              (proc
                (args 1)
                (lvar 0 0 g:::13)
                (bfl () 847)
                (lvar 0 0 g:::13)
                (return)
                847
                (lvar 6 1 token-type)
                (const string-tok)
                (eq?)
                (return)
                (name ())
              )
              (callj 1)
              846
              (not)
              (bfl () 850)
              (save () 849)
              (lvar 1 0 token)
              (lvar 3 2 bad-sexpr)
              (callj 1)
              849
              (pop)
              (br () 851)
              850
              851
              (save () 852)
              (lvar 3 1 get-token)
              (callj 0)
              852
              (pop)
              (lvar 5 1 token-type)
              (const cpar-tok)
              (eq?)
              (not)
              (bfl () 854)
              (save () 853)
              (const "expecting close paren")
              (lvar 3 2 bad-sexpr)
              (callj 1)
              853
              (pop)
              (br () 855)
              854
              855
              (lvar 1 0 token)
              (return)
              (name ())
            )
            (callj 1)
            (name ())
          )
          (callj 1)
          (name read-dot-token)
        )
        (lset 0 3 read-dot-token)
        (pop)
        (proc
          (args 0)
          (())
          (())
          (())
          (proc
            (args 3)
            (save () 866)
            (save () 867)
            (lvar 2 1 get-token)
            (callj 0)
            867
            (save () 868)
            (())
            (proc
              (args 1)
              (proc
                (args 1)
                (lvar 6 1 token-type)
                (const cpar-tok)
                (eq?)
                (not)
                (bfl () 898)
                (save () 869)
                (lvar 6 1 token-type)
                (proc
                  (args 1)
                  (lvar 0 0 g:::14)
                  (const opar-tok)
                  (eqv?)
                  (bfl () 891)
                  (save () 870)
                  (lvar 5 4 read-list)
                  (callj 0)
                  870
                  (())
                  (cons)
                  (lset 3 2 new)
                  (return)
                  891
                  (lvar 0 0 g:::14)
                  (const dot-tok)
                  (eqv?)
                  (bfl () 889)
                  (lvar 3 1 tail)
                  (save () 871)
                  (lvar 5 3 read-dot-token)
                  (callj 0)
                  871
                  (set-cdr!)
                  (pop)
                  (const was-dot-tok)
                  (lset 7 1 token-type)
                  (return)
                  889
                  (lvar 0 0 g:::14)
                  (const eof-tok)
                  (eqv?)
                  (bfl () 887)
                  (const "unexpected end of file")
                  (lvar 5 2 bad-sexpr)
                  (callj 1)
                  887
                  (lvar 0 0 g:::14)
                  (const tic-tok)
                  (eqv?)
                  (bfl () 885)
                  (const quote)
                  (save () 872)
                  (lvar 7 8 readin)
                  (callj 0)
                  872
                  (())
                  (cons)
                  (cons)
                  (())
                  (cons)
                  (lset 3 2 new)
                  (return)
                  885
                  (lvar 0 0 g:::14)
                  (const backtic-tok)
                  (eqv?)
                  (bfl () 883)
                  (const quasiquote)
                  (save () 873)
                  (lvar 7 8 readin)
                  (callj 0)
                  873
                  (())
                  (cons)
                  (cons)
                  (())
                  (cons)
                  (lset 3 2 new)
                  (return)
                  883
                  (lvar 0 0 g:::14)
                  (const comma-tok)
                  (eqv?)
                  (bfl () 881)
                  (const unquote)
                  (save () 874)
                  (lvar 7 8 readin)
                  (callj 0)
                  874
                  (())
                  (cons)
                  (cons)
                  (())
                  (cons)
                  (lset 3 2 new)
                  (return)
                  881
                  (lvar 0 0 g:::14)
                  (const at-tok)
                  (eqv?)
                  (bfl () 879)
                  (const unquote-splicing)
                  (save () 875)
                  (lvar 7 8 readin)
                  (callj 0)
                  875
                  (())
                  (cons)
                  (cons)
                  (())
                  (cons)
                  (lset 3 2 new)
                  (return)
                  879
                  (lvar 0 0 g:::14)
                  (const vector-tok)
                  (eqv?)
                  (bfl () 877)
                  (save () 876)
                  (lvar 5 5 read-vector)
                  (callj 0)
                  876
                  (())
                  (cons)
                  (lset 3 2 new)
                  (return)
                  877
                  (lvar 1 0 token)
                  (())
                  (cons)
                  (lset 3 2 new)
                  (return)
                  (name ())
                )
                (callj 1)
                869
                (pop)
                (lvar 6 1 token-type)
                (const was-dot-tok)
                (eq?)
                (bfl () 896)
                (const cpar-tok)
                (lset 6 1 token-type)
                (return)
                896
                (lvar 2 0 lst)
                (null?)
                (bfl () 893)
                (lvar 2 2 new)
                (lset 2 0 lst)
                (pop)
                (lvar 2 2 new)
                (lset 2 1 tail)
                (pop)
                (br () 894)
                893
                (lvar 2 1 tail)
                (lvar 2 2 new)
                (set-cdr!)
                (pop)
                (lvar 2 1 tail)
                (cdr)
                (lset 2 1 tail)
                (pop)
                894
                (save () 895)
                (lvar 4 1 get-token)
                (callj 0)
                895
                (lvar 1 0 loop)
                (callj 1)
                898
                (())
                (return)
                (name loop)
              )
              (lset 0 0 loop)
              (pop)
              (lvar 0 0 loop)
              (return)
              (name ())
            )
            (callj 1)
            868
            (callj 1)
            866
            (pop)
            (lvar 0 0 lst)
            (return)
            (name ())
          )
          (callj 3)
          (name read-list)
        )
        (lset 0 4 read-list)
        (pop)
        (proc
          (args 0)
          (save () 900)
          (lvar 1 1 get-token)
          (callj 0)
          900
          (pop)
          (lvar 3 1 token-type)
          (const opar-tok)
          (eq?)
          (bfl () 902)
          (save () 901)
          (lvar 1 4 read-list)
          (callj 0)
          901
          (lvar 1 0 my-list->vector)
          (callj 1)
          902
          (const "expecting open paren")
          (lvar 1 2 bad-sexpr)
          (callj 1)
          (name read-vector)
        )
        (lset 0 5 read-vector)
        (pop)
        (save () 904)
        (lvar 0 1 get-token)
        (callj 0)
        904
        (proc
          (args 1)
          (lvar 3 1 token-type)
          (proc
            (args 1)
            (lvar 0 0 g:::15)
            (const opar-tok)
            (eqv?)
            (bfl () 921)
            (lvar 2 4 read-list)
            (callj 0)
            921
            (lvar 0 0 g:::15)
            (const tic-tok)
            (eqv?)
            (bfl () 919)
            (const quote)
            (save () 905)
            (lvar 4 8 readin)
            (callj 0)
            905
            (())
            (cons)
            (cons)
            (return)
            919
            (lvar 0 0 g:::15)
            (const backtic-tok)
            (eqv?)
            (bfl () 917)
            (const quasiquote)
            (save () 906)
            (lvar 4 8 readin)
            (callj 0)
            906
            (())
            (cons)
            (cons)
            (return)
            917
            (lvar 0 0 g:::15)
            (const comma-tok)
            (eqv?)
            (bfl () 915)
            (const unquote)
            (save () 907)
            (lvar 4 8 readin)
            (callj 0)
            907
            (())
            (cons)
            (cons)
            (return)
            915
            (lvar 0 0 g:::15)
            (const at-tok)
            (eqv?)
            (bfl () 913)
            (const unquote-splicing)
            (save () 908)
            (lvar 4 8 readin)
            (callj 0)
            908
            (())
            (cons)
            (cons)
            (return)
            913
            (lvar 0 0 g:::15)
            (const vector-tok)
            (eqv?)
            (bfl () 911)
            (lvar 2 5 read-vector)
            (callj 0)
            911
            (lvar 0 0 g:::15)
            (const cpar-tok)
            (eqv?)
            (bfl () 909)
            (const "unexpected close paren")
            (lvar 2 2 bad-sexpr)
            (callj 1)
            909
            (lvar 1 0 token)
            (return)
            (name ())
          )
          (callj 1)
          (name ())
        )
        (callj 1)
        (name ())
      )
      (callj 6)
      (name readin)
    )
    (lset 0 8 readin)
    (pop)
    (lvar 0 8 readin)
    (callj 0)
    (name ())
  )
  (callj 9)
  (name read)
)
(gset read)
(pop)
(proc
  (argsd 1)
  (const "Error: ")
  (display)
  (pop)
  (lvar 0 0 reason)
  (display)
  (pop)
  (save () 923)
  (proc
    (args 1)
    (const " ")
    (display)
    (pop)
    (lvar 0 0 arg)
    (display)
    (return)
    (name ())
  )
  (lvar 0 1 args)
  (gvar for-each)
  (callj 2)
  923
  (pop)
  (newline)
  (pop)
  (1)
  (exit)
  (return)
  (name error)
)
(gset error)
(pop)
(proc
  (args 1)
  (())
  (proc
    (args 1)
    (proc
      (args 2)
      (lvar 0 0 x)
      (null?)
      (bfl () 924)
      (lvar 0 1 y)
      (return)
      924
      (lvar 0 0 x)
      (cdr)
      (lvar 0 0 x)
      (car)
      (lvar 0 1 y)
      (cons)
      (lvar 1 0 rev)
      (callj 2)
      (name rev)
    )
    (lset 0 0 rev)
    (pop)
    (lvar 1 0 x)
    (())
    (lvar 0 0 rev)
    (callj 2)
    (name ())
  )
  (callj 1)
  (name reverse)
)
(gset reverse)
(pop)
(proc
  (args 1)
  (lvar 0 0 l)
  (length)
  (proc
    (args 1)
    (lvar 0 0 size)
    (make-vector)
    (proc
      (args 1)
      (save () 926)
      (())
      (proc
        (args 1)
        (proc
          (args 1)
          (lvar 0 0 i)
          (lvar 3 0 size)
          (=)
          (bfl () 927)
          (())
          (return)
          927
          (lvar 2 0 v)
          (lvar 0 0 i)
          (lvar 4 0 l)
          (car)
          (vector-set!)
          (pop)
          (lvar 4 0 l)
          (cdr)
          (lset 4 0 l)
          (pop)
          (lvar 0 0 i)
          (1)
          (+)
          (lvar 1 0 loop)
          (callj 1)
          (name loop)
        )
        (lset 0 0 loop)
        (pop)
        (0)
        (lvar 0 0 loop)
        (callj 1)
        (name ())
      )
      (callj 1)
      926
      (pop)
      (lvar 0 0 v)
      (return)
      (name ())
    )
    (callj 1)
    (name ())
  )
  (callj 1)
  (name list->vector)
)
(gset list->vector)
(pop)
(proc
  (args 1)
  (())
  (proc
    (args 1)
    (save () 929)
    (())
    (proc
      (args 1)
      (proc
        (args 1)
        (lvar 0 0 i)
        (lvar 3 0 v)
        (vector-length)
        (=)
        (bfl () 930)
        (())
        (return)
        930
        (lvar 3 0 v)
        (lvar 0 0 i)
        (vector-ref)
        (lvar 2 0 l)
        (cons)
        (lset 2 0 l)
        (pop)
        (lvar 0 0 i)
        (1)
        (+)
        (lvar 1 0 loop)
        (callj 1)
        (name loop)
      )
      (lset 0 0 loop)
      (pop)
      (0)
      (lvar 0 0 loop)
      (callj 1)
      (name ())
    )
    (callj 1)
    929
    (pop)
    (lvar 0 0 l)
    (gvar reverse)
    (callj 1)
    (name ())
  )
  (callj 1)
  (name vector->list)
)
(gset vector->list)
(pop)
(proc
  (argsd 0)
  (lvar 0 0 x)
  (gvar list->vector)
  (callj 1)
  (name vector)
)
(gset vector)
(pop)
(proc
  (args 2)
  (lvar 0 0 x)
  (string-length)
  (lvar 0 1 y)
  (string-length)
  (+)
  (make-string)
  (proc
    (args 1)
    (save () 932)
    (0)
    (lvar 1 0 x)
    (string-length)
    (save () 933)
    (())
    (proc
      (args 1)
      (proc
        (args 2)
        (lvar 0 0 index)
        (lvar 0 1 size)
        (<)
        (bfl () 934)
        (lvar 2 0 z)
        (lvar 0 0 index)
        (lvar 3 0 x)
        (lvar 0 0 index)
        (string-ref)
        (string-set!)
        (pop)
        (lvar 0 0 index)
        (1)
        (+)
        (lvar 0 1 size)
        (lvar 1 0 loop)
        (callj 2)
        934
        (())
        (return)
        (name loop)
      )
      (lset 0 0 loop)
      (pop)
      (lvar 0 0 loop)
      (return)
      (name ())
    )
    (callj 1)
    933
    (callj 2)
    932
    (pop)
    (save () 936)
    (0)
    (lvar 1 1 y)
    (string-length)
    (save () 937)
    (())
    (proc
      (args 1)
      (proc
        (args 2)
        (lvar 0 0 index)
        (lvar 0 1 size)
        (<)
        (bfl () 938)
        (lvar 2 0 z)
        (lvar 0 0 index)
        (lvar 3 0 x)
        (string-length)
        (+)
        (lvar 3 1 y)
        (lvar 0 0 index)
        (string-ref)
        (string-set!)
        (pop)
        (lvar 0 0 index)
        (1)
        (+)
        (lvar 0 1 size)
        (lvar 1 0 loop)
        (callj 2)
        938
        (())
        (return)
        (name loop)
      )
      (lset 0 0 loop)
      (pop)
      (lvar 0 0 loop)
      (return)
      (name ())
    )
    (callj 1)
    937
    (callj 2)
    936
    (pop)
    (lvar 0 0 z)
    (return)
    (name ())
  )
  (callj 1)
  (name string-append)
)
(gset string-append)
(pop)
(proc
  (args 1)
  (())
  (())
  (())
  (proc
    (args 3)
    (lvar 1 0 charlist)
    (length)
    (lset 0 0 len)
    (pop)
    (lvar 0 0 len)
    (make-string)
    (lset 0 1 newstr)
    (pop)
    (proc
      (args 4)
      (lvar 0 1 i)
      (lvar 0 2 len)
      (=)
      (bfl () 940)
      (lvar 0 0 str)
      (return)
      940
      (lvar 0 0 str)
      (lvar 0 1 i)
      (lvar 0 3 charlist)
      (car)
      (string-set!)
      (pop)
      (lvar 0 0 str)
      (lvar 0 1 i)
      (1)
      (+)
      (lvar 0 2 len)
      (lvar 0 3 charlist)
      (cdr)
      (lvar 1 2 fill-string!)
      (callj 4)
      (name fill-string!)
    )
    (lset 0 2 fill-string!)
    (pop)
    (lvar 0 1 newstr)
    (0)
    (lvar 0 0 len)
    (lvar 1 0 charlist)
    (lvar 0 2 fill-string!)
    (callj 4)
    (name ())
  )
  (callj 3)
  (name list->string)
)
(gset list->string)
(pop)
(proc
  (argsd 1)
  (())
  (proc
    (args 1)
    (proc
      (args 2)
      (lvar 0 1 l)
      (null?)
      (bfl () 944)
      (())
      (return)
      944
      (save () 942)
      (lvar 0 1 l)
      (car)
      (lvar 0 0 p)
      (callj 1)
      942
      (save () 943)
      (lvar 0 0 p)
      (lvar 0 1 l)
      (cdr)
      (lvar 1 0 map-over-single-list)
      (callj 2)
      943
      (cons)
      (return)
      (name map-over-single-list)
    )
    (lset 0 0 map-over-single-list)
    (pop)
    (())
    (lvar 1 1 lists)
    (memq)
    (bfl () 950)
    (())
    (return)
    950
    (save () 946)
    (save () 947)
    (gvar __primitives)
    (0)
    (vector-ref)
    (lvar 1 1 lists)
    (lvar 0 0 map-over-single-list)
    (callj 2)
    947
    (argl)
    (lvar 1 0 proc)
    (callnj)
    946
    (pop)
    (save () 948)
    (lvar 1 0 proc)
    (save () 949)
    (gvar __primitives)
    (1)
    (vector-ref)
    (lvar 1 1 lists)
    (lvar 0 0 map-over-single-list)
    (callj 2)
    949
    (cons)
    (argl)
    (gvar for-each)
    (callnj)
    948
    (return)
    (name ())
  )
  (callj 1)
  (name for-each)
)
(gset for-each)
(pop)
(proc
  (args 4)
  (const 0.000000000000e0)
  (const 0.000000000000e0)
  (())
  (())
  (())
  (proc
    (args 5)
    (const 0.200000000000e1)
    (lvar 1 3 x)
    (*)
    (lvar 1 0 a)
    (-)
    (lvar 1 1 b)
    (-)
    (lvar 1 1 b)
    (lvar 1 0 a)
    (-)
    (/)
    (lset 0 3 y)
    (pop)
    (const 0.200000000000e1)
    (lvar 0 3 y)
    (*)
    (lset 0 4 y2)
    (pop)
    (save () 952)
    (())
    (proc
      (args 1)
      (proc
        (args 1)
        (lvar 0 0 i)
        (0)
        (=)
        (bfl () 953)
        (())
        (return)
        953
        (lvar 2 0 d)
        (lset 2 2 sv)
        (pop)
        (lvar 2 4 y2)
        (lvar 2 0 d)
        (*)
        (lvar 2 1 dd)
        (-)
        (lvar 3 2 term-coefficient)
        (lvar 0 0 i)
        (vector-ref)
        (+)
        (lset 2 0 d)
        (pop)
        (lvar 2 2 sv)
        (lset 2 1 dd)
        (pop)
        (lvar 0 0 i)
        (1)
        (-)
        (lvar 1 0 loop)
        (callj 1)
        (name loop)
      )
      (lset 0 0 loop)
      (pop)
      (lvar 2 2 term-coefficient)
      (vector-length)
      (1)
      (-)
      (lvar 0 0 loop)
      (callj 1)
      (name ())
    )
    (callj 1)
    952
    (pop)
    (lvar 0 3 y)
    (lvar 0 0 d)
    (*)
    (lvar 0 1 dd)
    (-)
    (const 0.500000000000e0)
    (lvar 1 2 term-coefficient)
    (0)
    (vector-ref)
    (*)
    (+)
    (return)
    (name ())
  )
  (callj 5)
  (name __approximate)
)
(gset __approximate)
(pop)
(save () 955)
(const 0.271828182846e1)
(const 0.738905609893e1)
(const 0.200855369232e2)
(const 0.545981500331e2)
(save () 956)
(const 0.350677530875e1)
(const 0.850391653780e0)
(const 0.105208693630e0)
(const 0.872210473331e-2)
(const 0.543436831149e-3)
(const 0.271154349130e-4)
(const 0.112813288866e-5)
(const 0.402455820151e-7)
(const 0.125658435508e-8)
(const 0.348814958398e-10)
(gvar vector)
(callj 10)
956
(proc
  (args 5)
  (proc
    (args 1)
    (())
    (())
    (proc
      (args 2)
      (const 0.100000000000e1)
      (lset 0 0 exponent)
      (pop)
      (proc
        (args 1)
        (lvar 0 0 n)
        (proc
          (args 1)
          (lvar 0 0 g:::16)
          (0)
          (eqv?)
          (bfl () 966)
          (())
          (return)
          966
          (lvar 0 0 g:::16)
          (1)
          (eqv?)
          (bfl () 964)
          (lvar 2 0 exponent)
          (lvar 4 0 e)
          (*)
          (lset 2 0 exponent)
          (return)
          964
          (lvar 0 0 g:::16)
          (2)
          (eqv?)
          (bfl () 962)
          (lvar 2 0 exponent)
          (lvar 4 1 e2)
          (*)
          (lset 2 0 exponent)
          (return)
          962
          (lvar 0 0 g:::16)
          (const 3)
          (eqv?)
          (bfl () 960)
          (lvar 2 0 exponent)
          (lvar 4 2 e3)
          (*)
          (lset 2 0 exponent)
          (return)
          960
          (lvar 0 0 g:::16)
          (const 4)
          (eqv?)
          (bfl () 958)
          (lvar 2 0 exponent)
          (lvar 4 3 e4)
          (*)
          (lset 2 0 exponent)
          (return)
          958
          (save () 957)
          (lvar 1 0 n)
          (2)
          (quotient)
          (lvar 2 1 split-exponent)
          (callj 1)
          957
          (pop)
          (lvar 1 0 n)
          (2)
          (quotient)
          (lvar 1 0 n)
          (2)
          (remainder)
          (+)
          (lvar 2 1 split-exponent)
          (callj 1)
          (name ())
        )
        (callj 1)
        (name split-exponent)
      )
      (lset 0 1 split-exponent)
      (pop)
      (lvar 1 0 x)
      (const 0.000000000000e0)
      (<)
      (proc
        (args 1)
        (save () 968)
        (lvar 2 0 x)
        (gvar abs)
        (callj 1)
        968
        (lset 2 0 x)
        (pop)
        (lvar 2 0 x)
        (floor)
        (proc
          (args 1)
          (lvar 0 0 k-real)
          (inexact->exact)
          (proc
            (args 1)
            (lvar 4 0 x)
            (lvar 1 0 k-real)
            (-)
            (proc
              (args 1)
              (save () 969)
              (const 0.000000000000e0)
              (const 0.100000000000e1)
              (lvar 6 4 exp-table)
              (lvar 0 0 z)
              (gvar __approximate)
              (callj 4)
              969
              (proc
                (args 1)
                (save () 970)
                (lvar 2 0 k)
                (lvar 5 1 split-exponent)
                (callj 1)
                970
                (pop)
                (lvar 0 0 y)
                (lvar 5 0 exponent)
                (*)
                (lset 0 0 y)
                (pop)
                (lvar 4 0 negative)
                (bfl () 971)
                (const 0.100000000000e1)
                (lvar 0 0 y)
                (/)
                (return)
                971
                (lvar 0 0 y)
                (return)
                (name ())
              )
              (callj 1)
              (name ())
            )
            (callj 1)
            (name ())
          )
          (callj 1)
          (name ())
        )
        (callj 1)
        (name ())
      )
      (callj 1)
      (name ())
    )
    (callj 2)
    (name ())
  )
  (return)
  (name ())
)
(callj 5)
955
(gset exp)
(pop)
(proc
  (args 2)
  (lvar 0 0 x)
  (display)
  (pop)
  (lvar 0 1 y)
  (display)
  (pop)
  (newline)
  (pop)
  (1)
  (exit)
  (return)
  (name my-error)
)
(gset my-error)
(pop)
(proc
  (args 2)
  (lvar 0 0 x)
  (null?)
  (bfl () 0)
  (lvar 0 1 y)
  (return)
  0
  (lvar 0 0 x)
  (cdr)
  (lvar 0 0 x)
  (car)
  (lvar 0 1 y)
  (cons)
  (gvar reverse-core)
  (callj 2)
  (name reverse-core)
)
(gset reverse-core)
(pop)
(proc
  (args 1)
  (lvar 0 0 x)
  (())
  (gvar reverse-core)
  (callj 2)
  (name rev)
)
(gset rev)
(pop)
(proc
  (args 2)
  (lvar 0 0 x)
  (null?)
  (bfl () 3)
  (lvar 0 1 y)
  (return)
  3
  (lvar 0 0 x)
  (car)
  (save () 2)
  (lvar 0 0 x)
  (cdr)
  (lvar 0 1 y)
  (gvar append2)
  (callj 2)
  2
  (cons)
  (return)
  (name append2)
)
(gset append2)
(pop)
(0)
(gset label-count)
(pop)
(proc
  (args 0)
  (gvar label-count)
  (1)
  (+)
  (gset label-count)
  (pop)
  (gvar label-count)
  (1)
  (-)
  (return)
  (name gen-label)
)
(gset gen-label)
(pop)
(0)
(gset gensym-count)
(pop)
(proc
  (args 0)
  (const "g:::")
  (proc
    (args 1)
    (gvar gensym-count)
    (number->string)
    (proc
      (args 1)
      (save () 5)
      (lvar 1 0 prefix)
      (lvar 0 0 string-number)
      (gvar string-append)
      (callj 2)
      5
      (string->symbol)
      (proc
        (args 1)
        (gvar gensym-count)
        (1)
        (+)
        (gset gensym-count)
        (pop)
        (lvar 0 0 symbol)
        (return)
        (name ())
      )
      (callj 1)
      (name ())
    )
    (callj 1)
    (name ())
  )
  (callj 1)
  (name gensym)
)
(gset gensym)
(pop)
(proc
  (args 1)
  (lvar 0 0 line)
  (write)
  (pop)
  (newline)
  (pop)
  (lvar 0 0 line)
  (return)
  (name write-line)
)
(gset write-line)
(pop)
(proc
  (args 1)
  (lvar 0 0 line)
  (display)
  (pop)
  (newline)
  (pop)
  (lvar 0 0 line)
  (return)
  (name display-line)
)
(gset display-line)
(pop)
(proc
  (args 1)
  (lvar 0 0 level)
  (0)
  (>)
  (bfl () 6)
  (const "  ")
  (display)
  (pop)
  (lvar 0 0 level)
  (1)
  (-)
  (gvar indent)
  (callj 1)
  6
  (())
  (return)
  (name indent)
)
(gset indent)
(pop)
(proc
  (args 1)
  (lvar 0 0 instruction)
  (())
  (cons)
  (return)
  (name gen-instruction)
)
(gset gen-instruction)
(pop)
(proc
  (args 1)
  (save () 8)
  (lvar 0 0 opcode)
  (gvar gen-instruction)
  (callj 1)
  8
  (())
  (cons)
  (return)
  (name gen-opcode)
)
(gset gen-opcode)
(pop)
(proc
  (args 0)
  (())
  (return)
  (name compile-nothing)
)
(gset compile-nothing)
(pop)
(proc
  (args 3)
  (lvar 0 1 val?)
  (bfl () 12)
  (lvar 0 2 more?)
  (bfl () 10)
  (lvar 0 0 instruction)
  (return)
  10
  (lvar 0 0 instruction)
  (save () 9)
  (gvar compile-return)
  (callj 0)
  9
  (gvar append2)
  (callj 2)
  12
  (gvar compile-nothing)
  (callj 0)
  (name val-more)
)
(gset val-more)
(pop)
(proc
  (args 3)
  (lvar 0 0 const)
  (const (#t #f () 0 1 2))
  (member)
  (bfl () 16)
  (save () 14)
  (lvar 0 0 const)
  (())
  (cons)
  (gvar gen-instruction)
  (callj 1)
  14
  (br () 17)
  16
  (save () 15)
  (const const)
  (lvar 0 0 const)
  (())
  (cons)
  (cons)
  (gvar gen-instruction)
  (callj 1)
  15
  17
  (lvar 0 1 val?)
  (lvar 0 2 more?)
  (gvar val-more)
  (callj 3)
  (name compile-const)
)
(gset compile-const)
(pop)
(proc
  (args 4)
  (save () 18)
  (const lvar)
  (lvar 0 1 location)
  (car)
  (lvar 0 1 location)
  (cdr)
  (lvar 0 0 var)
  (())
  (cons)
  (cons)
  (cons)
  (cons)
  (gvar gen-instruction)
  (callj 1)
  18
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar val-more)
  (callj 3)
  (name compile-local)
)
(gset compile-local)
(pop)
(proc
  (args 3)
  (save () 19)
  (const gvar)
  (lvar 0 0 var)
  (())
  (cons)
  (cons)
  (gvar gen-instruction)
  (callj 1)
  19
  (lvar 0 1 val?)
  (lvar 0 2 more?)
  (gvar val-more)
  (callj 3)
  (name compile-global)
)
(gset compile-global)
(pop)
(proc
  (args 4)
  (lvar 0 1 location)
  (null?)
  (bfl () 20)
  (lvar 0 0 var)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-global)
  (callj 3)
  20
  (lvar 0 0 var)
  (lvar 0 1 location)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-local)
  (callj 4)
  (name compile-var)
)
(gset compile-var)
(pop)
(proc
  (args 2)
  (const lset)
  (lvar 0 1 location)
  (car)
  (lvar 0 1 location)
  (cdr)
  (lvar 0 0 var)
  (())
  (cons)
  (cons)
  (cons)
  (cons)
  (gvar gen-instruction)
  (callj 1)
  (name compile-local-set)
)
(gset compile-local-set)
(pop)
(proc
  (args 1)
  (const gset)
  (lvar 0 0 var)
  (())
  (cons)
  (cons)
  (gvar gen-instruction)
  (callj 1)
  (name compile-global-set)
)
(gset compile-global-set)
(pop)
(proc
  (args 2)
  (lvar 0 1 location)
  (null?)
  (bfl () 22)
  (lvar 0 0 var)
  (gvar compile-global-set)
  (callj 1)
  22
  (lvar 0 0 var)
  (lvar 0 1 location)
  (gvar compile-local-set)
  (callj 2)
  (name compile-set!)
)
(gset compile-set!)
(pop)
(proc
  (args 1)
  (())
  (lvar 0 0 label)
  (())
  (cons)
  (cons)
  (return)
  (name make-label)
)
(gset make-label)
(pop)
(proc
  (args 1)
  (const br)
  (save () 24)
  (lvar 0 0 label)
  (gvar make-label)
  (callj 1)
  24
  (cons)
  (gvar gen-instruction)
  (callj 1)
  (name compile-br)
)
(gset compile-br)
(pop)
(proc
  (args 1)
  (const btr)
  (save () 25)
  (lvar 0 0 label)
  (gvar make-label)
  (callj 1)
  25
  (cons)
  (gvar gen-instruction)
  (callj 1)
  (name compile-btr)
)
(gset compile-btr)
(pop)
(proc
  (args 1)
  (const bfl)
  (save () 26)
  (lvar 0 0 label)
  (gvar make-label)
  (callj 1)
  26
  (cons)
  (gvar gen-instruction)
  (callj 1)
  (name compile-bfl)
)
(gset compile-bfl)
(pop)
(proc
  (args 1)
  (const label)
  (lvar 0 0 label)
  (())
  (cons)
  (cons)
  (gvar gen-instruction)
  (callj 1)
  (name compile-label)
)
(gset compile-label)
(pop)
(proc
  (args 0)
  (const pop)
  (())
  (cons)
  (gvar gen-instruction)
  (callj 1)
  (name compile-pop)
)
(gset compile-pop)
(pop)
(proc
  (args 2)
  (lvar 0 0 args)
  (null?)
  (bfl () 33)
  (const args)
  (lvar 0 1 n)
  (())
  (cons)
  (cons)
  (gvar gen-instruction)
  (callj 1)
  33
  (lvar 0 0 args)
  (symbol?)
  (bfl () 31)
  (const argsd)
  (lvar 0 1 n)
  (())
  (cons)
  (cons)
  (gvar gen-instruction)
  (callj 1)
  31
  (lvar 0 0 args)
  (pair?)
  (bfl () 27)
  (lvar 0 0 args)
  (car)
  (symbol?)
  (br () 28)
  27
  (#f)
  28
  (bfl () 29)
  (lvar 0 0 args)
  (cdr)
  (lvar 0 1 n)
  (1)
  (+)
  (gvar compile-args)
  (callj 2)
  29
  (const "illegal argument list -- ")
  (lvar 0 0 args)
  (gvar my-error)
  (callj 2)
  (name compile-args)
)
(gset compile-args)
(pop)
(proc
  (args 0)
  (const return)
  (())
  (cons)
  (gvar gen-instruction)
  (callj 1)
  (name compile-return)
)
(gset compile-return)
(pop)
(proc
  (args 1)
  (const save)
  (save () 35)
  (lvar 0 0 label)
  (gvar make-label)
  (callj 1)
  35
  (cons)
  (gvar gen-instruction)
  (callj 1)
  (name compile-save)
)
(gset compile-save)
(pop)
(proc
  (args 1)
  (const callj)
  (lvar 0 0 n)
  (())
  (cons)
  (cons)
  (gvar gen-instruction)
  (callj 1)
  (name compile-callj)
)
(gset compile-callj)
(pop)
(proc
  (args 0)
  (const callnj)
  (())
  (cons)
  (gvar gen-instruction)
  (callj 1)
  (name compile-callnj)
)
(gset compile-callnj)
(pop)
(proc
  (args 0)
  (const argl)
  (())
  (cons)
  (gvar gen-instruction)
  (callj 1)
  (name compile-argl)
)
(gset compile-argl)
(pop)
(proc
  (args 1)
  (lvar 0 0 more?)
  (bfl () 36)
  (gvar compile-nothing)
  (callj 0)
  36
  (gvar compile-return)
  (callj 0)
  (name if-no-more-compile-return)
)
(gset if-no-more-compile-return)
(pop)
(proc
  (args 1)
  (lvar 0 0 val?)
  (bfl () 38)
  (gvar compile-nothing)
  (callj 0)
  38
  (gvar compile-pop)
  (callj 0)
  (name if-no-val-compile-pop)
)
(gset if-no-val-compile-pop)
(pop)
(proc
  (args 2)
  (lvar 0 0 more?)
  (bfl () 40)
  (lvar 0 1 target)
  (gvar compile-br)
  (callj 1)
  40
  (gvar compile-nothing)
  (callj 0)
  (name if-more-compile-br)
)
(gset if-more-compile-br)
(pop)
(proc
  (args 2)
  (lvar 0 0 more?)
  (bfl () 42)
  (lvar 0 1 target)
  (gvar compile-label)
  (callj 1)
  42
  (gvar compile-nothing)
  (callj 0)
  (name if-more-compile-label)
)
(gset if-more-compile-label)
(pop)
(proc
  (args 3)
  (lvar 0 1 a)
  (null?)
  (bfl () 46)
  (())
  (return)
  46
  (lvar 0 0 x)
  (lvar 0 1 a)
  (car)
  (eq?)
  (bfl () 44)
  (lvar 0 2 n)
  (return)
  44
  (lvar 0 0 x)
  (lvar 0 1 a)
  (cdr)
  (lvar 0 2 n)
  (1)
  (+)
  (gvar position)
  (callj 3)
  (name position)
)
(gset position)
(pop)
(proc
  (args 3)
  (lvar 0 1 env)
  (null?)
  (bfl () 51)
  (())
  (return)
  51
  (save () 48)
  (lvar 0 0 var)
  (lvar 0 1 env)
  (car)
  (0)
  (gvar position)
  (callj 3)
  48
  (proc
    (args 1)
    (lvar 0 0 y)
    (number?)
    (bfl () 49)
    (lvar 1 2 x)
    (lvar 0 0 y)
    (cons)
    (return)
    49
    (lvar 1 0 var)
    (lvar 1 1 env)
    (cdr)
    (lvar 1 2 x)
    (1)
    (+)
    (gvar variable-location2)
    (callj 3)
    (name ())
  )
  (callj 1)
  (name variable-location2)
)
(gset variable-location2)
(pop)
(proc
  (args 2)
  (lvar 0 1 env)
  (null?)
  (bfl () 53)
  (())
  (return)
  53
  (lvar 0 0 var)
  (lvar 0 1 env)
  (0)
  (gvar variable-location2)
  (callj 3)
  (name variable-location)
)
(gset variable-location)
(pop)
(proc
  (args 3)
  (save () 55)
  (lvar 0 0 proc)
  (lvar 0 2 env)
  (gvar variable-location)
  (callj 2)
  55
  (null?)
  (bfl () 92)
  (lvar 0 0 proc)
  (proc
    (args 1)
    (lvar 0 0 g:::0)
    (const display)
    (eqv?)
    (bfl () 90)
    (lvar 1 1 n-args)
    (1)
    (=)
    (bfl () 56)
    (const (display #t))
    (return)
    56
    (const (displayfile #t))
    (return)
    90
    (lvar 0 0 g:::0)
    (const write)
    (eqv?)
    (bfl () 88)
    (lvar 1 1 n-args)
    (1)
    (=)
    (bfl () 58)
    (const (write #t))
    (return)
    58
    (const (writefile #t))
    (return)
    88
    (lvar 0 0 g:::0)
    (const write-char)
    (eqv?)
    (bfl () 86)
    (lvar 1 1 n-args)
    (1)
    (=)
    (bfl () 60)
    (const (write-char #t))
    (return)
    60
    (const (writecharfile #t))
    (return)
    86
    (lvar 0 0 g:::0)
    (const newline)
    (eqv?)
    (bfl () 84)
    (lvar 1 1 n-args)
    (0)
    (=)
    (bfl () 62)
    (const (newline #t))
    (return)
    62
    (const (newlinefile #t))
    (return)
    84
    (lvar 0 0 g:::0)
    (const read-char)
    (eqv?)
    (bfl () 82)
    (lvar 1 1 n-args)
    (0)
    (=)
    (bfl () 64)
    (const (read-char #f))
    (return)
    64
    (const (readcharfile #f))
    (return)
    82
    (lvar 0 0 g:::0)
    (const open-input-file)
    (eqv?)
    (bfl () 80)
    (lvar 1 1 n-args)
    (1)
    (=)
    (bfl () 66)
    (const (open-input-file #f))
    (return)
    66
    (const (open-binary-input-file #f))
    (return)
    80
    (lvar 0 0 g:::0)
    (const open-output-file)
    (eqv?)
    (bfl () 78)
    (lvar 1 1 n-args)
    (1)
    (=)
    (bfl () 68)
    (const (open-output-file #f))
    (return)
    68
    (const (open-binary-output-file #f))
    (return)
    78
    (lvar 0 0 g:::0)
    (const make-vector)
    (eqv?)
    (bfl () 76)
    (lvar 1 1 n-args)
    (1)
    (=)
    (bfl () 70)
    (const (make-vector #f))
    (return)
    70
    (const (make-vector-with-fill #f))
    (return)
    76
    (lvar 0 0 g:::0)
    (const make-string)
    (eqv?)
    (bfl () 74)
    (lvar 1 1 n-args)
    (1)
    (=)
    (bfl () 72)
    (const (make-string #f))
    (return)
    72
    (const (make-string-with-fill #f))
    (return)
    74
    (lvar 1 0 proc)
    (const ((car #f) (cdr #f) (caar #f) (cadr #f) (cdar #f) (cddr #f) (list-ref #f) (list-tail #f) (eqv? #f) (memq #f) (memv #f) (member #f) (assq #f) (assv #f) (cons #f) (not #f) (null? #f) (eq? #f) (symbol? #f) (pair? #f) (list? #f) (number? #f) (string? #f) (string-length #f) (string-ref #f) (string-set! #t) (string=? #f) (string<? #f) (string>? #f) (string<=? #f) (string>=? #f) (string-ci<? #f) (string-ci>? #f) (string-ci<=? #f) (string-ci>=? #f) (string-ci=? #f) (string->symbol #f) (symbol->string #f) (string->number #f) (number->string #f) (char? #f) (char=? #f) (char-alphabetic? #f) (char-numeric? #f) (char-upcase #f) (char-downcase #f) (char->integer #f) (integer->char #f) (integer? #f) (real? #f) (+ #f) (- #f) (* #f) (/ #f) (quotient #f) (remainder #f) (modulo #f) (floor #f) (ceiling #f) (truncate #f) (round #f) (bitwise-and #f) (bitwise-or #f) (bitwise-xor #f) (bitwise-not #f) (arithmetic-shift #f) (inexact->exact #f) (exact->inexact #f) (length #f) (= #f) (< #f) (> #f) (<= #f) (>= #f) (equal? #f) (set-car! #t) (set-cdr! #t) (vector? #f) (vector-length #f) (vector-ref #f) (vector-set! #t) (vector-fill! #t) (boolean? #f) (procedure? #f) (eval #t) (apply #t) (write #t) (write-char #t) (newline #t) (read-char #f) (eof-object? #f) (read-binary #t) (write-binary #t) (open-input-file #f) (open-output-file #f) (close-input-port #f) (close-output-port #f) (save-binary #t) (system #t) (exit #t)))
    (assq)
    (return)
    (name ())
  )
  (callj 1)
  92
  (#f)
  (return)
  (name primitive-procedure?)
)
(gset primitive-procedure?)
(pop)
(proc
  (args 1)
  (lvar 0 0 primitive-procedure)
  (cadr)
  (#t)
  (eq?)
  (return)
  (name primitive-has-side-effect?)
)
(gset primitive-has-side-effect?)
(pop)
(proc
  (args 2)
  (lvar 0 0 val?)
  (bfl () 97)
  (#f)
  (return)
  97
  (save () 94)
  (lvar 0 1 primitive-procedure)
  (gvar primitive-has-side-effect?)
  (callj 1)
  94
  (bfl () 95)
  (#f)
  (return)
  95
  (#t)
  (return)
  (name no-val-and-no-side-effect?)
)
(gset no-val-and-no-side-effect?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 109)
  (#t)
  (return)
  109
  (lvar 0 0 e)
  (number?)
  (bfl () 107)
  (#t)
  (return)
  107
  (lvar 0 0 e)
  (string?)
  (bfl () 105)
  (#t)
  (return)
  105
  (lvar 0 0 e)
  (#f)
  (eq?)
  (bfl () 103)
  (#t)
  (return)
  103
  (lvar 0 0 e)
  (#t)
  (eq?)
  (bfl () 101)
  (#t)
  (return)
  101
  (lvar 0 0 e)
  (char?)
  (bfl () 99)
  (#t)
  (return)
  99
  (#f)
  (return)
  (name self-evaluating?)
)
(gset self-evaluating?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 111)
  (#f)
  (br () 112)
  111
  (lvar 0 0 e)
  (symbol?)
  (not)
  112
  (bfl () 113)
  (lvar 0 0 e)
  (car)
  (const quote)
  (eq?)
  (return)
  113
  (#f)
  (return)
  (name quoted?)
)
(gset quoted?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (cadr)
  (return)
  (name text-of-quotation)
)
(gset text-of-quotation)
(pop)
(proc
  (args 1)
  (save () 115)
  (lvar 0 0 e)
  (gvar check-call/cc)
  (callj 1)
  115
  (pop)
  (save () 116)
  (lvar 0 0 e)
  (gvar log-library-procedure-call)
  (callj 1)
  116
  (pop)
  (lvar 0 0 e)
  (symbol?)
  (return)
  (name variable?)
)
(gset variable?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 117)
  (#f)
  (return)
  117
  (lvar 0 0 e)
  (car)
  (const set!)
  (eq?)
  (return)
  (name assignment?)
)
(gset assignment?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (cadr)
  (return)
  (name assignment-variable)
)
(gset assignment-variable)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (cddr)
  (car)
  (return)
  (name assignment-value)
)
(gset assignment-value)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 119)
  (#f)
  (return)
  119
  (lvar 0 0 e)
  (car)
  (const define)
  (eq?)
  (return)
  (name definition?)
)
(gset definition?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 121)
  (#f)
  (return)
  121
  (lvar 0 0 e)
  (car)
  (const lambda)
  (eq?)
  (return)
  (name lambda?)
)
(gset lambda?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 123)
  (#f)
  (return)
  123
  (lvar 0 0 e)
  (car)
  (const cond)
  (eq?)
  (return)
  (name conditional?)
)
(gset conditional?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 125)
  (#f)
  (return)
  125
  (lvar 0 0 e)
  (car)
  (const if)
  (eq?)
  (return)
  (name if?)
)
(gset if?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 127)
  (#f)
  (return)
  127
  (lvar 0 0 e)
  (car)
  (const let)
  (eq?)
  (return)
  (name let?)
)
(gset let?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 129)
  (#f)
  (return)
  129
  (lvar 0 0 e)
  (car)
  (const let*)
  (eq?)
  (return)
  (name let*?)
)
(gset let*?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 131)
  (#f)
  (return)
  131
  (lvar 0 0 e)
  (car)
  (const letrec)
  (eq?)
  (return)
  (name letrec?)
)
(gset letrec?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 133)
  (#f)
  (return)
  133
  (lvar 0 0 e)
  (car)
  (const begin)
  (eq?)
  (return)
  (name begin?)
)
(gset begin?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 135)
  (#f)
  (return)
  135
  (lvar 0 0 e)
  (car)
  (const list)
  (eq?)
  (return)
  (name list-?)
)
(gset list-?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 139)
  (#f)
  (return)
  139
  (lvar 0 0 e)
  (car)
  (const (+ - * /))
  (memq)
  (bfl () 137)
  (lvar 0 0 e)
  (cdr)
  (length)
  (2)
  (=)
  (not)
  (return)
  137
  (#f)
  (return)
  (name arith-terms?)
)
(gset arith-terms?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 141)
  (#f)
  (return)
  141
  (lvar 0 0 e)
  (car)
  (const or)
  (eq?)
  (return)
  (name or?)
)
(gset or?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 143)
  (#f)
  (return)
  143
  (lvar 0 0 e)
  (car)
  (const and)
  (eq?)
  (return)
  (name and?)
)
(gset and?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 145)
  (#f)
  (return)
  145
  (lvar 0 0 e)
  (car)
  (const while)
  (eq?)
  (return)
  (name while?)
)
(gset while?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 147)
  (#f)
  (return)
  147
  (lvar 0 0 e)
  (car)
  (const case)
  (eq?)
  (return)
  (name case?)
)
(gset case?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 149)
  (#f)
  (return)
  149
  (lvar 0 0 e)
  (car)
  (const do)
  (eq?)
  (return)
  (name do?)
)
(gset do?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 151)
  (#f)
  (return)
  151
  (lvar 0 0 e)
  (car)
  (const quasiquote)
  (eq?)
  (return)
  (name quasiquoted?)
)
(gset quasiquoted?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 153)
  (#f)
  (return)
  153
  (lvar 0 0 e)
  (car)
  (const string)
  (eq?)
  (return)
  (name string-?)
)
(gset string-?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (cdr)
  (return)
  (name clauses)
)
(gset clauses)
(pop)
(proc
  (args 1)
  (lvar 0 0 clauses)
  (null?)
  (return)
  (name no-clauses?)
)
(gset no-clauses?)
(pop)
(proc
  (args 1)
  (lvar 0 0 clauses)
  (car)
  (return)
  (name first-clause)
)
(gset first-clause)
(pop)
(proc
  (args 1)
  (lvar 0 0 clauses)
  (cdr)
  (return)
  (name rest-clauses)
)
(gset rest-clauses)
(pop)
(proc
  (args 1)
  (lvar 0 0 clause)
  (cdr)
  (return)
  (name actions)
)
(gset actions)
(pop)
(proc
  (args 1)
  (lvar 0 0 clause)
  (pair?)
  (bfl () 155)
  (lvar 0 0 clause)
  (car)
  (return)
  155
  (())
  (return)
  (name predicate)
)
(gset predicate)
(pop)
(proc
  (args 1)
  (save () 157)
  (lvar 0 0 clause)
  (gvar predicate)
  (callj 1)
  157
  (const else)
  (eq?)
  (return)
  (name else-clause?)
)
(gset else-clause?)
(pop)
(proc
  (args 1)
  (lvar 0 0 seq)
  (cdr)
  (null?)
  (return)
  (name last-exp?)
)
(gset last-exp?)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (symbol?)
  (not)
  (return)
  (name application?)
)
(gset application?)
(pop)
(#f)
(gset program-has-call/cc)
(pop)
(const proc)
(const args)
(1)
(())
(cons)
(cons)
(const cc)
(())
(cons)
(const lvar)
(0)
(0)
(const f)
(())
(cons)
(cons)
(cons)
(cons)
(const callj)
(1)
(())
(cons)
(cons)
(())
(cons)
(cons)
(cons)
(cons)
(())
(cons)
(cons)
(const gset)
(const call/cc)
(())
(cons)
(cons)
(const pop)
(())
(cons)
(())
(cons)
(cons)
(cons)
(())
(cons)
(gset call/cc-code)
(pop)
(const zero?)
(#f)
(const (define zero? (lambda (x) (= x 0))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const positive?)
(#f)
(const (define positive? (lambda (x) (> x 0))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const negative?)
(#f)
(const (define negative? (lambda (x) (< x 0))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const abs)
(#f)
(const (define abs (lambda (x) (if (< x 0) (- x) x))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const even?)
(#f)
(const (define (even? x) (= 0 (modulo x 2))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const odd?)
(#f)
(const (define (odd? x) (= 1 (modulo x 2))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const gcd)
(#f)
(const (define (gcd a b) (if (= b 0) (abs a) (gcd b (modulo a b)))))
(const (abs))
(())
(cons)
(cons)
(cons)
(cons)
(const lcm)
(#f)
(const (define (lcm a b) (quotient (abs (* a b)) (gcd a b))))
(const (abs gcd))
(())
(cons)
(cons)
(cons)
(cons)
(const list)
(#f)
(const (define list (lambda x x)))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const read)
(#f)
(const (define read (lambda args (letrec ((port (if (null? args) (quote stdin) (car args))) (token-type (quote ())) (paren-level 0) (ch #\space) (previous-ch #\space) (tab-char (integer->char 9)) (carriage-return (integer->char 13)) (white-space (list #\space #\newline tab-char carriage-return)) (readin (lambda () (letrec ((my-list->vector (lambda (l) (let ((size (length l))) (let ((v (make-vector size))) (do ((i 0 (+ i 1))) ((= i size)) (vector-set! v i (car l)) (set! l (cdr l))) v)))) (get-token (lambda () (letrec ((token (quote ())) (token-list (quote ())) (token-new (quote ())) (token-tail (quote ())) (char-alpha-numeric? (lambda () (or (char-alphabetic? ch) (char-numeric? ch)))) (skip-past-alpha (lambda () (let loop () (if (char-alpha-numeric?) (begin (get-ch) (skip-past-alpha) (loop)))))) (get-ch (lambda () (if (not (eq? port (quote stdin))) (set! ch (read-char port)) (set! ch (read-char))) (if (char=? ch #\newline) (set! ch #\space)))) (get-ch-no-newline (lambda () (if (not (eq? port (quote stdin))) (set! ch (read-char port)) (set! ch (read-char))))) (skip-line (lambda () (if (char=? ch #\newline) (get-ch) (begin (get-ch-no-newline) (skip-line))))) (skip-blanks (lambda () (cond ((eof-object? ch)) ((char=? ch #\;) (skip-line) (skip-blanks)) ((memq ch white-space) (get-ch) (skip-blanks)) (else (quote ()))))) (replace-last-ch (lambda () (set-car! token-tail ch) (set! previous-ch ch) (get-ch))) (append-to-list (lambda () (set! token-new (list ch)) (if (not (null? token-list)) (begin (set-cdr! token-tail token-new) (set! token-tail (cdr token-tail))) (begin (set! token-list token-new) (set! token-tail token-new))) (set! previous-ch ch) (get-ch))) (get-vector (lambda () (get-ch) (if (member ch (quote (#\t #\f))) (begin (set! token-type (quote boolean-tok)) (if (char=? ch #\t) (set! token #t) (set! token #f)) (get-ch)) (if (char=? ch #\\) (begin (set! token-type (quote char-tok)) (get-ch) (set! token ch) (let ((first-ch ch)) (get-ch) (case first-ch ((#\s) (if (char=? ch #\p) (begin (set! token #\space) (skip-past-alpha)))) ((#\n) (if (char=? ch #\e) (begin (set! token #\newline) (skip-past-alpha))))))) (set! token-type (quote vector-tok)))))) (get-string (lambda () (get-ch) (let loop () (if (not (or (char=? ch #\") (eof-object? ch))) (begin (append-to-list) (if (char=? previous-ch #\\) (replace-last-ch)) (loop)))) (get-ch) (set! token-type (quote string-tok)) (set! token (list->string token-list)))) (append-e0! (lambda (token) (let ((token-tail (list-tail token (- (length token) 1)))) (set-cdr! token-tail (list #\e #\0))))) (number-token? (lambda (token) (letrec ((ch #\space) (end-of-token (integer->char 0)) (return #f) (has-decimal #f) (has-e #f) (save-token token) (next-ch (lambda () (if (null? token) (set! ch end-of-token) (begin (set! ch (car token)) (if (char=? ch #\.) (set! has-decimal #t) (if (or (char=? ch #\e) (char=? ch #\E)) (set! has-e #t))) (set! token (cdr token)))))) (state-0 (lambda () (next-ch) (cond ((char=? ch #\-) (state-1)) ((char-numeric? ch) (state-2)) ((char=? ch #\.) (state-3)) (else (quote ()))))) (state-1 (lambda () (next-ch) (cond ((char=? ch #\.) (state-3)) ((char-numeric? ch) (state-2)) (else (quote ()))))) (state-2 (lambda () (next-ch) (cond ((char=? ch #\.) (state-3)) ((char-numeric? ch) (state-2)) ((or (char=? ch #\e) (char=? ch #\E)) (state-4)) ((char=? ch end-of-token) (state-7)) (else (quote ()))))) (state-3 (lambda () (next-ch) (cond ((or (char=? ch #\e) (char=? ch #\E)) (state-4)) ((char-numeric? ch) (state-3)) ((char=? ch end-of-token) (state-7)) (else (quote ()))))) (state-4 (lambda () (next-ch) (cond ((or (char=? ch #\+) (char=? ch #\-)) (state-5)) ((char-numeric? ch) (state-6)) (else (quote ()))))) (state-5 (lambda () (next-ch) (if (char-numeric? ch) (state-6)))) (state-6 (lambda () (next-ch) (cond ((char=? ch end-of-token) (state-7)) ((char-numeric? ch) (state-6)) (else (quote ()))))) (state-7 (lambda () (if (and has-decimal (not has-e)) (append-e0! save-token)) (set! return #t)))) (state-0) return))) (get-symbol (lambda () (let loop () (if (not (or (memq ch white-space) (memq ch (quote (#\( #\)))) (eof-object? ch))) (begin (set! ch (char-downcase ch)) (append-to-list) (loop)))) (if (equal? token-list (quote (#\.))) (set! token-type (quote dot-tok)) (begin (set! token-type (quote symbol-tok)) (if (number-token? token-list) (set! token (string->number (list->string token-list))) (set! token (string->symbol (list->string token-list))))))))) (skip-blanks) (if (eof-object? ch) (begin (set! token-type (quote eof-tok)) (set! token ch)) (let ((match (assv ch (quote ((#\( opar-tok) (#\) cpar-tok) (#\' tic-tok) (#\, comma-tok) (#\` backtic-tok) (#\# vector-tok) (#\" string-tok)))))) (if match (case (cadr match) ((opar-tok cpar-tok tic-tok backtic-tok) (set! token-type (cadr match)) (set! token ch) (cond ((eq? token-type (quote opar-tok)) (set! paren-level (+ paren-level 1)) (get-ch)) ((eq? token-type (quote cpar-tok)) (set! paren-level (- paren-level 1)) (if (> paren-level 0) (get-ch))) (else (get-ch)))) ((comma-tok) (set! token-type (cadr match)) (set! token ch) (get-ch) (if (char=? ch #\@) (begin (set! token-type (quote at-tok)) (set! token ch) (get-ch)))) ((vector-tok) (get-vector)) ((string-tok) (get-string))) (get-symbol)))) token))) (bad-sexpr (lambda (sexpr) (error "bad sexpr" sexpr))) (read-dot-token (lambda () (let ((token (get-token))) (case token-type ((opar-tok) (set! token (read-list)) (get-token) token) ((tic-tok) (set! token (list (cons (quote quote) (list (readin))))) token) ((backtic-tok) (set! token (list (cons (quote quasiquote) (list (readin))))) token) ((comma-tok) (set! token (list (cons (quote unquote) (list (readin))))) token) ((at-tok) (set! token (list (cons (quote unquote-splicing) (list (readin))))) token) (else (if (not (or (eq? token-type (quote symbol-tok)) (eq? token-type (quote string-tok)))) (bad-sexpr token)) (get-token) (if (not (eq? token-type (quote cpar-tok))) (bad-sexpr "expecting close paren")) token))))) (read-list (lambda () (let ((lst (quote ())) (tail (quote ())) (new (quote ()))) (let loop ((token (get-token))) (if (not (eq? token-type (quote cpar-tok))) (begin (case token-type ((opar-tok) (set! new (list (read-list)))) ((dot-tok) (set-cdr! tail (read-dot-token)) (set! token-type (quote was-dot-tok))) ((eof-tok) (bad-sexpr "unexpected end of file")) ((tic-tok) (set! new (list (cons (quote quote) (list (readin)))))) ((backtic-tok) (set! new (list (cons (quote quasiquote) (list (readin)))))) ((comma-tok) (set! new (list (cons (quote unquote) (list (readin)))))) ((at-tok) (set! new (list (cons (quote unquote-splicing) (list (readin)))))) ((vector-tok) (set! new (list (read-vector)))) (else (set! new (list token)))) (if (not (eq? token-type (quote was-dot-tok))) (begin (if (not (null? lst)) (begin (set-cdr! tail new) (set! tail (cdr tail))) (begin (set! lst new) (set! tail new))) (loop (get-token))) (begin (set! token-type (quote cpar-tok))))))) lst))) (read-vector (lambda () (get-token) (if (eq? token-type (quote opar-tok)) (my-list->vector (read-list)) (bad-sexpr "expecting open paren"))))) (let ((token (get-token))) (case token-type ((opar-tok) (read-list)) ((tic-tok) (cons (quote quote) (list (readin)))) ((backtic-tok) (cons (quote quasiquote) (list (readin)))) ((comma-tok) (cons (quote unquote) (list (readin)))) ((at-tok) (cons (quote unquote-splicing) (list (readin)))) ((vector-tok) (read-vector)) ((cpar-tok) (bad-sexpr "unexpected close paren")) (else token))))))) (readin)))))
(const (error list->string))
(())
(cons)
(cons)
(cons)
(cons)
(const error)
(#f)
(const (define (error reason . args) (display "Error: ") (display reason) (for-each (lambda (arg) (display " ") (display arg)) args) (newline) (exit 1)))
(const (for-each))
(())
(cons)
(cons)
(cons)
(cons)
(const fold-right)
(#f)
(const (define (fold-right f init seq) (if (null? seq) init (f (car seq) (fold-right f init (cdr seq))))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const fold-left)
(#f)
(const (define (fold-left f init seq) (if (null? seq) init (fold-left f (f init (car seq)) (cdr seq)))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const reverse)
(#f)
(const (define (reverse x) (letrec ((rev (lambda (x y) (cond ((null? x) y) (else (rev (cdr x) (cons (car x) y))))))) (rev x (quote ())))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const max)
(#f)
(const (define (max first . rest) (fold-left (lambda (x y) (if (> x y) x y)) first rest)))
(const (fold-left))
(())
(cons)
(cons)
(cons)
(cons)
(const min)
(#f)
(const (define (min first . rest) (fold-left (lambda (x y) (if (< x y) x y)) first rest)))
(const (fold-left))
(())
(cons)
(cons)
(cons)
(cons)
(const complex?)
(#f)
(const (define (complex? x) (number? x)))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const rational?)
(#f)
(const (define (rational? x) (integer? x)))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const exact?)
(#f)
(const (define (exact? x) (integer? x)))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const inexact?)
(#f)
(const (define (inexact? x) (not (integer? x))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const append)
(#f)
(const (define (append . lsts) (letrec ((append-two (lambda (list1 list2) (if (null? list1) list2 (cons (car list1) (append-two (cdr list1) list2))))) (improper-list? (lambda (l) (not (or (null? l) (pair? l))))) (fold-right-append (lambda (f init seq) (cond ((null? seq) init) ((null? (car seq)) (cadr seq)) ((null? (cdr seq)) (append-two (car seq) (cdr seq))) ((not (pair? (cdr seq))) (append-two (car seq) (cdr seq))) ((improper-list? (cdr (cadr seq))) (append-two (car seq) (cadr seq))) (else (f (car seq) (fold-right-append f init (cdr seq)))))))) (cond ((null? lsts) (quote ())) ((null? (cdr lsts)) (car lsts)) (else (fold-right-append (lambda (sublist acc) (append-two sublist acc)) (quote ()) lsts))))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const char-lower-case?)
(#f)
(const (define (char-lower-case? x) (let ((x (char->integer x))) (and (>= x 97) (<= x 122)))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const char-upper-case?)
(#f)
(const (define (char-upper-case? x) (let ((x (char->integer x))) (and (>= x 65) (<= x 90)))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const char-whitespace?)
(#f)
(const (define (char-whitespace? x) (let ((x (char->integer x))) (or (= x 32) (= x 10) (= x 9) (= x 13)))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const char<?)
(#f)
(const (define (char<? x y) (< (char->integer x) (char->integer y))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const char>?)
(#f)
(const (define (char>? x y) (> (char->integer x) (char->integer y))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const char<=?)
(#f)
(const (define (char<=? x y) (<= (char->integer x) (char->integer y))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const char>=?)
(#f)
(const (define (char>=? x y) (>= (char->integer x) (char->integer y))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const char-ci=?)
(#f)
(const (define (char-ci=? x y) (= (char->integer (char-upcase x)) (char->integer (char-upcase y)))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const char-ci<?)
(#f)
(const (define (char-ci<? x y) (< (char->integer (char-upcase x)) (char->integer (char-upcase y)))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const char-ci>?)
(#f)
(const (define (char-ci>? x y) (> (char->integer (char-upcase x)) (char->integer (char-upcase y)))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const char-ci<=?)
(#f)
(const (define (char-ci<=? x y) (<= (char->integer (char-upcase x)) (char->integer (char-upcase y)))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const char-ci>=?)
(#f)
(const (define (char-ci>=? x y) (>= (char->integer (char-upcase x)) (char->integer (char-upcase y)))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const assoc)
(#f)
(const (define (assoc thing alist) (if (null? alist) #f (if (equal? (car (car alist)) thing) (car alist) (assoc thing (cdr alist))))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const list->vector)
(#f)
(const (define (list->vector l) (let ((size (length l))) (let ((v (make-vector size))) (do ((i 0 (+ i 1))) ((= i size)) (vector-set! v i (car l)) (set! l (cdr l))) v))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const vector->list)
(#f)
(const (define (vector->list v) (let ((l (quote ()))) (do ((i 0 (+ i 1))) ((= i (vector-length v))) (set! l (cons (vector-ref v i) l))) (reverse l))))
(const (reverse))
(())
(cons)
(cons)
(cons)
(cons)
(const vector)
(#f)
(const (define (vector . x) (list->vector x)))
(const (list->vector))
(())
(cons)
(cons)
(cons)
(cons)
(const string)
(#f)
(const (define (string . x) (list->string x)))
(const (list->string))
(())
(cons)
(cons)
(cons)
(cons)
(const string-append)
(#f)
(const (define (string-append x y) (let ((z (make-string (+ (string-length x) (string-length y))))) (let loop ((index 0) (size (string-length x))) (if (< index size) (begin (string-set! z index (string-ref x index)) (loop (+ index 1) size)))) (let loop ((index 0) (size (string-length y))) (if (< index size) (begin (string-set! z (+ index (string-length x)) (string-ref y index)) (loop (+ index 1) size)))) z)))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const list->string)
(#f)
(const (define (list->string charlist) (letrec ((len (length charlist)) (newstr (make-string len)) (fill-string! (lambda (str i len charlist) (if (= i len) str (begin (string-set! str i (car charlist)) (fill-string! str (+ i 1) len (cdr charlist))))))) (fill-string! newstr 0 len charlist))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const string-fill!)
(#f)
(const (define (string-fill! s e) (let ((n (string-length s))) (let loop ((i 0)) (if (= i n) s (begin (string-set! s i e) (loop (+ i 1))))))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const string->list)
(#f)
(const (define (string->list s) (let loop ((n (- (string-length s) 1)) (l (quote ()))) (if (= n -1) l (loop (- n 1) (cons (string-ref s n) l))))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const substring)
(#f)
(const (define (substring str start end) (if (not (string? str)) (error (quote substring) "not a string")) (let* ((size (- end start)) (sub-string (make-string size))) (do ((i 0 (+ i 1))) ((= i size)) (string-set! sub-string i (string-ref str (+ start i)))) sub-string)))
(const (error))
(())
(cons)
(cons)
(cons)
(cons)
(const string-copy)
(#f)
(const (define (string-copy str) (if (not (string? str)) (error (quote string-copy) "not a string")) (let* ((size (string-length str)) (new-str (make-string size))) (do ((i 0 (+ i 1))) ((= i size)) (string-set! new-str i (string-ref str i))) new-str)))
(const (error))
(())
(cons)
(cons)
(cons)
(cons)
(const map)
(#f)
(const (define map (lambda alistofargs (let ((functor (car alistofargs)) (listoffunctorargs (cdr alistofargs))) (letrec ((error (lambda (x y) (display x) (display " ") (display y) (newline) (exit 1))) (map1 (lambda (functor alist) (if (null? alist) (quote ()) (cons (functor (car alist)) (map1 functor (cdr alist)))))) (mapn (lambda (functor alistoflists) (if (null? (car alistoflists)) (quote ()) (let ((alistofcars (map1 car alistoflists)) (alistofcdrs (map1 cdr alistoflists))) (cons (apply functor alistofcars) (mapn functor alistofcdrs)))))) (are-alltrue? (lambda (alistofbooleans) (if (null? alistofbooleans) #t (if (car alistofbooleans) (are-alltrue? (cdr alistofbooleans)) #f))))) (cond ((not (procedure? functor)) (error (quote map) "first argument must be a procedure")) ((not (and (are-alltrue? (map1 list? listoffunctorargs)) (let ((listoflengths (map1 length listoffunctorargs))) (are-alltrue? (map1 (lambda (x) (equal? x (car listoflengths))) (cdr listoflengths)))))) (error (quote map) "second and remaining arguments must be lists of equal length")) (else (mapn functor listoffunctorargs))))))))
(const (error))
(())
(cons)
(cons)
(cons)
(cons)
(const for-each)
(#f)
(const (define for-each (lambda (proc . lists) (letrec ((map-over-single-list (lambda (p l) (if (null? l) (quote ()) (cons (p (car l)) (map-over-single-list p (cdr l))))))) (if (memq (quote ()) lists) (quote ()) (begin (apply proc (map-over-single-list car lists)) (apply for-each (cons proc (map-over-single-list cdr lists)))))))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const __approximate)
(#f)
(const (define __approximate (lambda (a b term-coefficient x) (let ((d 0.000000000000e0) (dd 0.000000000000e0) (sv (quote ())) (y (quote ())) (y2 (quote ()))) (set! y (/ (- (- (* 0.200000000000e1 x) a) b) (- b a))) (set! y2 (* 0.200000000000e1 y)) (do ((i (- (vector-length term-coefficient) 1) (- i 1))) ((= i 0)) (set! sv d) (set! d (+ (- (* y2 d) dd) (vector-ref term-coefficient i))) (set! dd sv)) (+ (- (* y d) dd) (* 0.500000000000e0 (vector-ref term-coefficient 0)))))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const sqrt)
(#f)
(const (define sqrt (let ((sqrt-error (if (> 0.000000000001e0 0.000000000000e0) 0.100000000000e-9 0.100000000000e-5))) (lambda (x) (let ((sqrt-tolerence sqrt-error)) (if (= x 0.000000000000e0) 0.000000000000e0 (if (< x sqrt-tolerence) x (let ((temp (* x sqrt-tolerence)) (temp2 (quote ())) (guess (quote ())) (new-guess (quote ())) (result (quote ()))) (set! sqrt-tolerence temp) (set! temp (* 0.500000000000e0 x)) (set! guess temp) (let loop () (set! temp (/ x guess)) (set! temp2 (+ guess temp)) (set! new-guess (* 0.500000000000e0 temp2)) (set! result new-guess) (set! temp (- guess new-guess)) (set! temp2 (abs temp)) (set! guess new-guess) (if (> temp2 sqrt-tolerence) (loop))) result))))))))
(const (abs))
(())
(cons)
(cons)
(cons)
(cons)
(const cos)
(#f)
(const (define cos (let ((precision-12? (if (> 0.000000000001e0 0.000000000000e0) 0.100000000000e-9 0.100000000000e-5))) (let* ((pi 0.314159265359e1) (twopi 0.628318530718e1) (piovertwo 0.157079632679e1) (make-factorial-term (lambda (n) (let ((sum 0.100000000000e1)) (do ((i 1 (+ i 1))) ((> i n)) (set! sum (* sum (/ 0.100000000000e1 i)))) sum))) (factorial-terms (list->vector (list (make-factorial-term 1) (make-factorial-term 2) (make-factorial-term 3) (make-factorial-term 4) (make-factorial-term 5) (make-factorial-term 6) (make-factorial-term 7) (make-factorial-term 8) (make-factorial-term 9) (make-factorial-term 10) (make-factorial-term 11) (make-factorial-term 12) (make-factorial-term 13) (make-factorial-term 14) (make-factorial-term 15) (make-factorial-term 16) (make-factorial-term 17) (make-factorial-term 18)))) (fmod (lambda (x y) (- x (* y (floor (/ x y)))))) (cos-iterations (lambda (x) (let ((sum 0.100000000000e1) (temp 0.000000000000e0) (term 0.000000000000e0) (product (* x x)) (power 0.100000000000e1) (sign #t) (i 1) (n_terms (if precision-12? (if (< x 0.200000000000e0) 4 8) (if (< x 0.200000000000e0) 3 4)))) (set! power product) (do ((iterations 0 (+ iterations 1))) ((= iterations n_terms)) (set! term (* power (vector-ref factorial-terms i))) (set! power (* product power)) (if sign (begin (set! term (- term)) (set! sign #f)) (set! sign #t)) (set! sum (+ sum term)) (set! i (+ i 2))) sum)))) (lambda (x) (let ((y (quote ())) (quad (quote ()))) (set! x (fmod x twopi)) (if (< x 0.000000000000e0) (set! x (- x))) (set! quad (inexact->exact (floor (/ x piovertwo)))) (case quad ((0)) ((1) (set! x (- pi x))) ((2) (set! x (- x pi))) (else (set! x (- twopi x)))) (set! y (cos-iterations x)) (if (or (= quad 1) (= quad 2)) (set! y (- y))) y))))))
(())
(())
(cons)
(cons)
(cons)
(cons)
(const sin)
(#f)
(const (define sin (let ((piovertwo 0.157079632679e1)) (lambda (x) (cos (- x piovertwo))))))
(const (cos))
(())
(cons)
(cons)
(cons)
(cons)
(const tan)
(#f)
(const (define tan (let ((pi 0.314159265359e1) (twopi 0.628318530718e1) (piovertwo 0.157079632679e1) (pioverfour 0.785398163390e0) (threepiovertwo 0.471238898038e1) (tan-table (vector 0.911304340831e0 0.489468643647e0 0.428483489096e-1 0.102443433549e-1 0.145326875383e-2 0.278780253458e-3 0.448301822935e-4 0.799257270309e-5 0.134084773079e-5 0.233126074931e-6 0.396875426344e-7 0.684067117355e-8 0.117050385469e-8 0.201141698728e-9 0.344490352720e-10 0.574452642640e-11)) (fmod (lambda (x y) (- x (* y (floor (/ x y))))))) (lambda (x) (let ((octant (quote ())) (y (quote ())) (negate #f)) (if (< x 0.000000000000e0) (begin (set! x (- x)) (set! negate #t))) (set! x (fmod x twopi)) (set! octant (inexact->exact (floor (/ x pioverfour)))) (case octant ((0)) ((1) (set! x (- piovertwo x))) ((2) (set! x (- x piovertwo))) ((3) (set! x (- pi x))) ((4) (set! x (- x pi))) ((5) (set! x (- threepiovertwo x))) ((6) (set! x (- x threepiovertwo))) ((7) (set! x (- twopi x)))) (set! y (__approximate 0.000000000000e0 pioverfour tan-table x)) (if (member octant (quote (1 2 5 6))) (set! y (/ 0.100000000000e1 y))) (if (member octant (quote (2 3 6 7))) (set! y (- y))) (if negate (set! y (- y))) y)))))
(const (vector __approximate))
(())
(cons)
(cons)
(cons)
(cons)
(const atan)
(#f)
(const (define atan (let ((piovertwo 0.157079632679e1) (atan-table (vector 0.854157172785e0 0.394736453871e0 -0.354553383690e-1 -0.194094144785e-2 0.109509253197e-2 -0.102618374367e-3 -0.189668689828e-4 0.636712399557e-5 -0.331925837198e-6 -0.179860123505e-6 0.415653823934e-7 0.131637113319e-9 -0.165041676587e-8 0.268430542306e-9 0.218642982476e-10 -0.149259322417e-10))) (lambda (x) (if (< x 0.000000000000e0) (begin (set! x (- x)) (if (> x 0.100000000000e1) (- (- piovertwo (__approximate 0.000000000000e0 0.100000000000e1 atan-table (/ 0.100000000000e1 x)))) (- (__approximate 0.000000000000e0 0.100000000000e1 atan-table x)))) (if (> x 0.100000000000e1) (- piovertwo (__approximate 0.000000000000e0 0.100000000000e1 atan-table (/ 0.100000000000e1 x))) (__approximate 0.000000000000e0 0.100000000000e1 atan-table x)))))))
(const (vector __approximate))
(())
(cons)
(cons)
(cons)
(cons)
(const acos)
(#f)
(const (define acos (lambda (x) (* 0.200000000000e1 (atan (/ (sqrt (- 0.100000000000e1 (* x x))) (+ 0.100000000000e1 x)))))))
(const (sqrt atan))
(())
(cons)
(cons)
(cons)
(cons)
(const asin)
(#f)
(const (define asin (lambda (x) (* 0.200000000000e1 (atan (/ x (+ 0.100000000000e1 (sqrt (- 0.100000000000e1 (* x x))))))))))
(const (sqrt atan))
(())
(cons)
(cons)
(cons)
(cons)
(const exp)
(#f)
(const (define exp (let ((e 0.271828182846e1) (e2 0.738905609893e1) (e3 0.200855369232e2) (e4 0.545981500331e2) (exp-table (vector 0.350677530875e1 0.850391653780e0 0.105208693630e0 0.872210473331e-2 0.543436831149e-3 0.271154349130e-4 0.112813288866e-5 0.402455820151e-7 0.125658435508e-8 0.348814958398e-10))) (lambda (x) (letrec ((exponent 0.100000000000e1) (split-exponent (lambda (n) (case n ((0)) ((1) (set! exponent (* exponent e))) ((2) (set! exponent (* exponent e2))) ((3) (set! exponent (* exponent e3))) ((4) (set! exponent (* exponent e4))) (else (split-exponent (quotient n 2)) (split-exponent (+ (quotient n 2) (remainder n 2)))))))) (let ((negative (< x 0.000000000000e0))) (set! x (abs x)) (let* ((k-real (floor x)) (k (inexact->exact k-real)) (z (- x k-real)) (y (__approximate 0.000000000000e0 0.100000000000e1 exp-table z))) (split-exponent k) (set! y (* y exponent)) (if negative (/ 0.100000000000e1 y) y))))))))
(const (abs vector __approximate))
(())
(cons)
(cons)
(cons)
(cons)
(const log)
(#f)
(const (define log (let* ((n-log-terms 9) (odd-recipricals-table (make-vector n-log-terms)) (logoften 0.230258509299e1) (log-of-one-fifth -0.160943791243e1) (log-of-two-fifths -0.916290731870e0)) (do ((i 0 (+ i 1))) ((= i n-log-terms)) (vector-set! odd-recipricals-table i (/ 0.100000000000e1 (+ (* i 2) 1)))) (lambda (x) (letrec ((ln (lambda (x) (let* ((z (/ (- x 0.100000000000e1) (+ x 0.100000000000e1))) (power z) (z^2 (* z z)) (term (quote ())) (sum 0.000000000000e0)) (do ((i 0 (+ i 1))) ((= i n-log-terms)) (set! term (* power (vector-ref odd-recipricals-table i))) (set! sum (+ sum term)) (set! power (* power z^2))) (* sum 0.200000000000e1)))) (increase-power (lambda (n power) (if (< n 0.100000000000e1) (increase-power (* n 0.100000000000e2) (- power 1)) (list n power)))) (decrease-power (lambda (n power) (if (> 0.100000000000e1 n) (list n power) (decrease-power (/ n 0.100000000000e2) (+ power 1))))) (decode-float (lambda (n) (let ((sign (if (< n 0.000000000000e0) -0.100000000000e1 0.100000000000e1)) (exponent 0) (result (quote ()))) (set! n (abs n)) (if (< n 0.100000000000e1) (set! result (increase-power n 0)) (set! result (decrease-power n 0))) (vector (car result) (cadr result) sign))))) (let ((x2 (decode-float x))) (let ((significand (vector-ref x2 0)) (exponent (vector-ref x2 1))) (let ((power (* exponent logoften))) (if (< significand 0.300000000000e0) (begin (+ power (+ log-of-one-fifth (ln (* 0.500000000000e1 significand))))) (if (< significand 0.500000000000e0) (begin (+ power (+ log-of-two-fifths (ln (* 0.250000000000e1 significand))))) (+ power (ln significand))))))))))))
(const (abs vector __approximate))
(())
(cons)
(cons)
(cons)
(cons)
(())
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(cons)
(gset library-procedures)
(pop)
(proc
  (args 1)
  (lvar 0 0 dependencies)
  (null?)
  (not)
  (bfl () 159)
  (lvar 0 0 dependencies)
  (car)
  (proc
    (args 1)
    (save () 158)
    (lvar 0 0 dependency)
    (gvar log-library-procedure-call)
    (callj 1)
    158
    (pop)
    (lvar 1 0 dependencies)
    (cdr)
    (gvar log-library-dependencies)
    (callj 1)
    (name ())
  )
  (callj 1)
  159
  (())
  (return)
  (name log-library-dependencies)
)
(gset log-library-dependencies)
(pop)
(proc
  (args 1)
  (lvar 0 0 proc)
  (symbol?)
  (bfl () 163)
  (lvar 0 0 proc)
  (gvar library-procedures)
  (assq)
  (proc
    (args 1)
    (lvar 0 0 library-procedure)
    (bfl () 161)
    (lvar 0 0 library-procedure)
    (cdr)
    (#t)
    (set-car!)
    (pop)
    (lvar 0 0 library-procedure)
    (cddr)
    (cadr)
    (gvar log-library-dependencies)
    (callj 1)
    161
    (())
    (return)
    (name ())
  )
  (callj 1)
  163
  (())
  (return)
  (name log-library-procedure-call)
)
(gset log-library-procedure-call)
(pop)
(proc
  (args 1)
  (lvar 0 0 proc)
  (symbol?)
  (bfl () 167)
  (lvar 0 0 proc)
  (const call/cc)
  (eq?)
  (bfl () 165)
  (#t)
  (gset program-has-call/cc)
  (return)
  165
  (())
  (return)
  167
  (())
  (return)
  (name check-call/cc)
)
(gset check-call/cc)
(pop)
(proc
  (args 1)
  (lvar 0 0 app)
  (car)
  (return)
  (name operator)
)
(gset operator)
(pop)
(proc
  (args 1)
  (lvar 0 0 app)
  (cdr)
  (return)
  (name operands)
)
(gset operands)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 171)
  (#f)
  (return)
  171
  (lvar 0 0 e)
  (car)
  (pair?)
  (bfl () 169)
  (lvar 0 0 e)
  (car)
  (gvar definition?)
  (callj 1)
  169
  (#f)
  (return)
  (name internal-definition?)
)
(gset internal-definition?)
(pop)
(proc
  (args 1)
  (lvar 0 0 body)
  (null?)
  (bfl () 180)
  (())
  (return)
  180
  (save () 173)
  (lvar 0 0 body)
  (gvar internal-definition?)
  (callj 1)
  173
  (bfl () 178)
  (lvar 0 0 body)
  (car)
  (cdr)
  (car)
  (symbol?)
  (bfl () 175)
  (lvar 0 0 body)
  (car)
  (cdr)
  (br () 176)
  175
  (lvar 0 0 body)
  (car)
  (cdr)
  (caar)
  (const lambda)
  (lvar 0 0 body)
  (cdar)
  (cdar)
  (save () 174)
  (const begin)
  (())
  (cons)
  (lvar 0 0 body)
  (car)
  (cddr)
  (gvar append2)
  (callj 2)
  174
  (())
  (cons)
  (cons)
  (cons)
  (())
  (cons)
  (cons)
  176
  (save () 177)
  (lvar 0 0 body)
  (cdr)
  (gvar transform-internal-defines)
  (callj 1)
  177
  (cons)
  (return)
  178
  (())
  (return)
  (name transform-internal-defines)
)
(gset transform-internal-defines)
(pop)
(proc
  (args 1)
  (save () 182)
  (lvar 0 0 body)
  (gvar internal-definition?)
  (callj 1)
  182
  (bfl () 185)
  (save () 183)
  (lvar 0 0 body)
  (gvar transform-internal-defines)
  (callj 1)
  183
  (proc
    (args 1)
    (const letrec)
    (lvar 0 0 transformed)
    (save () 184)
    (const begin)
    (())
    (cons)
    (lvar 1 0 body)
    (lvar 0 0 transformed)
    (length)
    (list-tail)
    (gvar append2)
    (callj 2)
    184
    (())
    (cons)
    (cons)
    (cons)
    (())
    (cons)
    (return)
    (name ())
  )
  (callj 1)
  185
  (lvar 0 0 body)
  (return)
  (name try-transform-internal-defines)
)
(gset try-transform-internal-defines)
(pop)
(proc
  (args 5)
  (lvar 0 2 val?)
  (bfl () 192)
  (save () 187)
  (lvar 0 0 e)
  (cadr)
  (save () 188)
  (lvar 0 0 e)
  (cddr)
  (gvar try-transform-internal-defines)
  (callj 1)
  188
  (proc
    (args 2)
    (const proc)
    (save () 189)
    (save () 190)
    (lvar 0 0 args)
    (lvar 0 1 body)
    (lvar 1 1 env)
    (gvar compile-lambda)
    (callj 3)
    190
    (const name)
    (lvar 1 4 name)
    (())
    (cons)
    (cons)
    (())
    (cons)
    (gvar append2)
    (callj 2)
    189
    (())
    (cons)
    (cons)
    (gvar gen-instruction)
    (callj 1)
    (name ())
  )
  (callj 2)
  187
  (save () 191)
  (lvar 0 3 more?)
  (gvar if-no-more-compile-return)
  (callj 1)
  191
  (gvar append2)
  (callj 2)
  192
  (gvar compile-nothing)
  (callj 0)
  (name compile-procedure)
)
(gset compile-procedure)
(pop)
(proc
  (args 1)
  (lvar 0 0 code)
  (null?)
  (bfl () 194)
  (#f)
  (return)
  194
  (lvar 0 0 code)
  (car)
  (const proc)
  (eq?)
  (return)
  (name compound-procedure?)
)
(gset compound-procedure?)
(pop)
(proc
  (args 5)
  (save () 196)
  (save () 197)
  (lvar 0 1 val)
  (lvar 0 2 env)
  (#t)
  (#t)
  (lvar 0 0 var)
  (gvar compile)
  (callj 5)
  197
  (save () 198)
  (lvar 0 0 var)
  (save () 199)
  (lvar 0 0 var)
  (lvar 0 2 env)
  (gvar variable-location)
  (callj 2)
  199
  (gvar compile-set!)
  (callj 2)
  198
  (gvar append2)
  (callj 2)
  196
  (proc
    (args 1)
    (lvar 1 4 more?)
    (bfl () 204)
    (lvar 1 3 val?)
    (bfl () 201)
    (lvar 0 0 dummy)
    (return)
    201
    (lvar 0 0 dummy)
    (save () 200)
    (gvar compile-pop)
    (callj 0)
    200
    (gvar append2)
    (callj 2)
    204
    (lvar 0 0 dummy)
    (save () 203)
    (gvar compile-return)
    (callj 0)
    203
    (gvar append2)
    (callj 2)
    (name ())
  )
  (callj 1)
  (name compile-assignment)
)
(gset compile-assignment)
(pop)
(proc
  (args 1)
  (save () 206)
  (lvar 0 0 e)
  (cadr)
  (gvar variable?)
  (callj 1)
  206
  (bfl () 207)
  (lvar 0 0 e)
  (cadr)
  (return)
  207
  (lvar 0 0 e)
  (cadr)
  (car)
  (return)
  (name definition-variable)
)
(gset definition-variable)
(pop)
(proc
  (args 1)
  (save () 209)
  (lvar 0 0 e)
  (cadr)
  (gvar variable?)
  (callj 1)
  209
  (bfl () 210)
  (lvar 0 0 e)
  (cddr)
  (car)
  (return)
  210
  (const lambda)
  (lvar 0 0 e)
  (cadr)
  (cdr)
  (lvar 0 0 e)
  (cddr)
  (cons)
  (cons)
  (return)
  (name definition-value)
)
(gset definition-value)
(pop)
(proc
  (args 4)
  (save () 212)
  (save () 213)
  (lvar 0 0 e)
  (gvar definition-variable)
  (callj 1)
  213
  (save () 214)
  (lvar 0 0 e)
  (gvar definition-value)
  (callj 1)
  214
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-assignment)
  (callj 5)
  212
  (save () 215)
  (gvar compile-pop)
  (callj 0)
  215
  (gvar append2)
  (callj 2)
  (name compile-definition)
)
(gset compile-definition)
(pop)
(proc
  (args 4)
  (lvar 0 0 e)
  (null?)
  (bfl () 221)
  (())
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-const)
  (callj 3)
  221
  (save () 216)
  (lvar 0 0 e)
  (gvar last-exp?)
  (callj 1)
  216
  (bfl () 219)
  (lvar 0 0 e)
  (car)
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (())
  (gvar compile)
  (callj 5)
  219
  (save () 217)
  (lvar 0 0 e)
  (car)
  (lvar 0 1 env)
  (#f)
  (#t)
  (())
  (gvar compile)
  (callj 5)
  217
  (save () 218)
  (lvar 0 0 e)
  (cdr)
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-sequence)
  (callj 4)
  218
  (gvar append2)
  (callj 2)
  (name compile-sequence)
)
(gset compile-sequence)
(pop)
(proc
  (args 1)
  (lvar 0 0 dotted-list)
  (null?)
  (bfl () 226)
  (())
  (return)
  226
  (lvar 0 0 dotted-list)
  (symbol?)
  (bfl () 224)
  (lvar 0 0 dotted-list)
  (())
  (cons)
  (return)
  224
  (lvar 0 0 dotted-list)
  (car)
  (save () 223)
  (lvar 0 0 dotted-list)
  (cdr)
  (gvar make-true-list)
  (callj 1)
  223
  (cons)
  (return)
  (name make-true-list)
)
(gset make-true-list)
(pop)
(proc
  (args 3)
  (save () 228)
  (lvar 0 0 args)
  (0)
  (gvar compile-args)
  (callj 2)
  228
  (save () 229)
  (lvar 0 1 body)
  (save () 230)
  (lvar 0 0 args)
  (gvar make-true-list)
  (callj 1)
  230
  (lvar 0 2 env)
  (cons)
  (#t)
  (#f)
  (gvar compile-sequence)
  (callj 4)
  229
  (gvar append2)
  (callj 2)
  (name compile-lambda)
)
(gset compile-lambda)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 242)
  (#f)
  (return)
  242
  (save () 231)
  (save () 232)
  (lvar 0 0 e)
  (gvar first-clause)
  (callj 1)
  232
  (gvar else-clause?)
  (callj 1)
  231
  (bfl () 240)
  (const begin)
  (save () 233)
  (save () 234)
  (lvar 0 0 e)
  (gvar first-clause)
  (callj 1)
  234
  (gvar actions)
  (callj 1)
  233
  (cons)
  (return)
  240
  (const if)
  (save () 235)
  (save () 236)
  (lvar 0 0 e)
  (gvar first-clause)
  (callj 1)
  236
  (gvar predicate)
  (callj 1)
  235
  (const begin)
  (save () 237)
  (save () 238)
  (lvar 0 0 e)
  (gvar first-clause)
  (callj 1)
  238
  (gvar actions)
  (callj 1)
  237
  (cons)
  (const cond)
  (save () 239)
  (lvar 0 0 e)
  (gvar rest-clauses)
  (callj 1)
  239
  (cons)
  (())
  (cons)
  (cons)
  (cons)
  (cons)
  (return)
  (name transform-cond)
)
(gset transform-cond)
(pop)
(proc
  (args 4)
  (save () 244)
  (lvar 0 0 e)
  (gvar transform-cond)
  (callj 1)
  244
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (())
  (gvar compile)
  (callj 5)
  (name compile-cond)
)
(gset compile-cond)
(pop)
(proc
  (args 1)
  (lvar 0 0 predicate)
  (pair?)
  (bfl () 245)
  (lvar 0 0 predicate)
  (car)
  (const not)
  (eq?)
  (return)
  245
  (#f)
  (return)
  (name negative-predicate?)
)
(gset negative-predicate?)
(pop)
(proc
  (args 6)
  (lvar 0 0 predicate)
  (#f)
  (eq?)
  (bfl () 276)
  (lvar 0 2 else_)
  (null?)
  (not)
  (bfl () 247)
  (lvar 0 2 else_)
  (car)
  (lvar 0 3 env)
  (lvar 0 4 val?)
  (lvar 0 5 more?)
  (())
  (gvar compile)
  (callj 5)
  247
  (())
  (return)
  276
  (save () 249)
  (lvar 0 0 predicate)
  (gvar self-evaluating?)
  (callj 1)
  249
  (bfl () 274)
  (lvar 0 1 then)
  (lvar 0 3 env)
  (lvar 0 4 val?)
  (lvar 0 5 more?)
  (())
  (gvar compile)
  (callj 5)
  274
  (save () 250)
  (lvar 0 0 predicate)
  (gvar negative-predicate?)
  (callj 1)
  250
  (bfl () 251)
  (lvar 0 2 else_)
  (null?)
  (not)
  (br () 252)
  251
  (#f)
  252
  (bfl () 272)
  (lvar 0 0 predicate)
  (cadr)
  (lvar 0 2 else_)
  (car)
  (lvar 0 1 then)
  (())
  (cons)
  (lvar 0 3 env)
  (lvar 0 4 val?)
  (lvar 0 5 more?)
  (gvar compile-if)
  (callj 6)
  272
  (lvar 0 2 else_)
  (null?)
  (bfl () 253)
  (const (()))
  (lset 0 2 else_)
  (pop)
  (br () 254)
  253
  254
  (save () 255)
  (lvar 0 0 predicate)
  (lvar 0 3 env)
  (#t)
  (#t)
  (())
  (gvar compile)
  (callj 5)
  255
  (save () 256)
  (lvar 0 1 then)
  (lvar 0 3 env)
  (lvar 0 4 val?)
  (lvar 0 5 more?)
  (())
  (gvar compile)
  (callj 5)
  256
  (save () 257)
  (lvar 0 2 else_)
  (car)
  (lvar 0 3 env)
  (lvar 0 4 val?)
  (lvar 0 5 more?)
  (())
  (gvar compile)
  (callj 5)
  257
  (proc
    (args 3)
    (lvar 0 1 compile-then)
    (lvar 0 2 compile-else)
    (equal?)
    (bfl () 270)
    (save () 258)
    (lvar 1 0 predicate)
    (lvar 1 3 env)
    (#f)
    (#t)
    (())
    (gvar compile)
    (callj 5)
    258
    (lvar 0 2 compile-else)
    (gvar append2)
    (callj 2)
    270
    (save () 259)
    (gvar gen-label)
    (callj 0)
    259
    (save () 260)
    (gvar gen-label)
    (callj 0)
    260
    (proc
      (args 2)
      (lvar 1 0 compile-predicate)
      (save () 261)
      (save () 262)
      (lvar 0 0 target1)
      (gvar compile-bfl)
      (callj 1)
      262
      (save () 263)
      (lvar 1 1 compile-then)
      (save () 264)
      (save () 265)
      (lvar 2 5 more?)
      (lvar 0 1 target2)
      (gvar if-more-compile-br)
      (callj 2)
      265
      (save () 266)
      (save () 267)
      (lvar 0 0 target1)
      (gvar compile-label)
      (callj 1)
      267
      (save () 268)
      (lvar 1 2 compile-else)
      (save () 269)
      (lvar 2 5 more?)
      (lvar 0 1 target2)
      (gvar if-more-compile-label)
      (callj 2)
      269
      (gvar append2)
      (callj 2)
      268
      (gvar append2)
      (callj 2)
      266
      (gvar append2)
      (callj 2)
      264
      (gvar append2)
      (callj 2)
      263
      (gvar append2)
      (callj 2)
      261
      (gvar append2)
      (callj 2)
      (name ())
    )
    (callj 2)
    (name ())
  )
  (callj 3)
  (name compile-if)
)
(gset compile-if)
(pop)
(proc
  (args 1)
  (lvar 0 0 pairs)
  (null?)
  (bfl () 279)
  (())
  (return)
  279
  (lvar 0 0 pairs)
  (caar)
  (save () 278)
  (lvar 0 0 pairs)
  (cdr)
  (gvar build-let-formals)
  (callj 1)
  278
  (cons)
  (return)
  (name build-let-formals)
)
(gset build-let-formals)
(pop)
(proc
  (args 1)
  (lvar 0 0 pairs)
  (null?)
  (bfl () 282)
  (())
  (return)
  282
  (lvar 0 0 pairs)
  (cdar)
  (car)
  (save () 281)
  (lvar 0 0 pairs)
  (cdr)
  (gvar build-let-actuals)
  (callj 1)
  281
  (cons)
  (return)
  (name build-let-actuals)
)
(gset build-let-actuals)
(pop)
(proc
  (args 3)
  (const lambda)
  (lvar 0 0 formals)
  (lvar 0 1 body)
  (cons)
  (cons)
  (lvar 0 2 actuals)
  (cons)
  (return)
  (name transform-let)
)
(gset transform-let)
(pop)
(proc
  (args 4)
  (const letrec)
  (lvar 0 0 tag)
  (const lambda)
  (lvar 0 1 formals)
  (lvar 0 2 body)
  (cons)
  (cons)
  (())
  (cons)
  (cons)
  (())
  (cons)
  (lvar 0 0 tag)
  (())
  (cons)
  (cons)
  (cons)
  (lvar 0 3 actuals)
  (cons)
  (return)
  (name transform-let-tag)
)
(gset transform-let-tag)
(pop)
(proc
  (args 4)
  (lvar 0 0 e)
  (car)
  (symbol?)
  (bfl () 292)
  (lvar 0 0 e)
  (car)
  (save () 284)
  (lvar 0 0 e)
  (cadr)
  (gvar build-let-formals)
  (callj 1)
  284
  (save () 285)
  (lvar 0 0 e)
  (cddr)
  (gvar try-transform-internal-defines)
  (callj 1)
  285
  (save () 286)
  (lvar 0 0 e)
  (cadr)
  (gvar build-let-actuals)
  (callj 1)
  286
  (proc
    (args 4)
    (save () 287)
    (lvar 0 0 tag)
    (lvar 0 1 formals)
    (lvar 0 2 body)
    (lvar 0 3 actuals)
    (gvar transform-let-tag)
    (callj 4)
    287
    (lvar 1 1 env)
    (lvar 1 2 val?)
    (lvar 1 3 more?)
    (())
    (gvar compile)
    (callj 5)
    (name ())
  )
  (callj 4)
  292
  (save () 288)
  (lvar 0 0 e)
  (car)
  (gvar build-let-formals)
  (callj 1)
  288
  (save () 289)
  (lvar 0 0 e)
  (cdr)
  (gvar try-transform-internal-defines)
  (callj 1)
  289
  (save () 290)
  (lvar 0 0 e)
  (car)
  (gvar build-let-actuals)
  (callj 1)
  290
  (proc
    (args 3)
    (save () 291)
    (lvar 0 0 formals)
    (lvar 0 1 body)
    (lvar 0 2 actuals)
    (gvar transform-let)
    (callj 3)
    291
    (lvar 1 1 env)
    (lvar 1 2 val?)
    (lvar 1 3 more?)
    (())
    (gvar compile)
    (callj 5)
    (name ())
  )
  (callj 3)
  (name compile-let)
)
(gset compile-let)
(pop)
(proc
  (args 2)
  (lvar 0 0 assignments)
  (null?)
  (bfl () 294)
  (const lambda)
  (())
  (lvar 0 1 body)
  (cons)
  (cons)
  (())
  (cons)
  (return)
  294
  (const let)
  (lvar 0 0 assignments)
  (car)
  (())
  (cons)
  (const let*)
  (lvar 0 0 assignments)
  (cdr)
  (lvar 0 1 body)
  (cons)
  (cons)
  (())
  (cons)
  (cons)
  (cons)
  (return)
  (name transform-let*)
)
(gset transform-let*)
(pop)
(proc
  (args 4)
  (lvar 0 0 e)
  (car)
  (save () 296)
  (lvar 0 0 e)
  (cdr)
  (gvar try-transform-internal-defines)
  (callj 1)
  296
  (proc
    (args 2)
    (save () 297)
    (lvar 0 0 assignments)
    (lvar 0 1 body)
    (gvar transform-let*)
    (callj 2)
    297
    (lvar 1 1 env)
    (lvar 1 2 val?)
    (lvar 1 3 more?)
    (())
    (gvar compile)
    (callj 5)
    (name ())
  )
  (callj 2)
  (name compile-let*)
)
(gset compile-let*)
(pop)
(proc
  (args 1)
  (lvar 0 0 pairs)
  (null?)
  (bfl () 299)
  (())
  (return)
  299
  (lvar 0 0 pairs)
  (caar)
  (())
  (())
  (cons)
  (cons)
  (save () 298)
  (lvar 0 0 pairs)
  (cdr)
  (gvar build-letrec-unassigned)
  (callj 1)
  298
  (cons)
  (return)
  (name build-letrec-unassigned)
)
(gset build-letrec-unassigned)
(pop)
(proc
  (args 2)
  (lvar 0 0 pairs)
  (null?)
  (bfl () 302)
  (lvar 0 1 body)
  (return)
  302
  (const set!)
  (lvar 0 0 pairs)
  (car)
  (cons)
  (save () 301)
  (lvar 0 0 pairs)
  (cdr)
  (lvar 0 1 body)
  (gvar build-letrec-assigned)
  (callj 2)
  301
  (cons)
  (return)
  (name build-letrec-assigned)
)
(gset build-letrec-assigned)
(pop)
(proc
  (args 2)
  (const let)
  (lvar 0 0 unassigned)
  (lvar 0 1 assigned)
  (cons)
  (cons)
  (return)
  (name transform-letrec)
)
(gset transform-letrec)
(pop)
(proc
  (args 4)
  (save () 304)
  (lvar 0 0 e)
  (car)
  (gvar build-letrec-unassigned)
  (callj 1)
  304
  (save () 305)
  (lvar 0 0 e)
  (car)
  (save () 306)
  (lvar 0 0 e)
  (cdr)
  (gvar try-transform-internal-defines)
  (callj 1)
  306
  (gvar build-letrec-assigned)
  (callj 2)
  305
  (proc
    (args 2)
    (save () 307)
    (lvar 0 0 unassigned)
    (lvar 0 1 assigned)
    (gvar transform-letrec)
    (callj 2)
    307
    (lvar 1 1 env)
    (lvar 1 2 val?)
    (lvar 1 3 more?)
    (())
    (gvar compile)
    (callj 5)
    (name ())
  )
  (callj 2)
  (name compile-letrec)
)
(gset compile-letrec)
(pop)
(proc
  (args 2)
  (lvar 0 0 e)
  (null?)
  (bfl () 310)
  (())
  (return)
  310
  (save () 308)
  (lvar 0 0 e)
  (car)
  (lvar 0 1 env)
  (#t)
  (#t)
  (())
  (gvar compile)
  (callj 5)
  308
  (save () 309)
  (lvar 0 0 e)
  (cdr)
  (lvar 0 1 env)
  (gvar compile-list-of-values)
  (callj 2)
  309
  (gvar append2)
  (callj 2)
  (name compile-list-of-values)
)
(gset compile-list-of-values)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 312)
  (())
  (return)
  312
  (const cons)
  (lvar 0 0 e)
  (car)
  (const list)
  (lvar 0 0 e)
  (cdr)
  (cons)
  (())
  (cons)
  (cons)
  (cons)
  (return)
  (name transform-list)
)
(gset transform-list)
(pop)
(proc
  (args 4)
  (save () 314)
  (lvar 0 0 e)
  (gvar transform-list)
  (callj 1)
  314
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (())
  (gvar compile)
  (callj 5)
  (name compile-list)
)
(gset compile-list)
(pop)
(proc
  (args 2)
  (lvar 0 1 e)
  (length)
  (2)
  (=)
  (bfl () 317)
  (lvar 0 0 f)
  (save () 315)
  (lvar 0 1 e)
  (gvar rev)
  (callj 1)
  315
  (cons)
  (return)
  317
  (lvar 0 0 f)
  (save () 316)
  (lvar 0 0 f)
  (lvar 0 1 e)
  (cdr)
  (gvar transform-arith-terms)
  (callj 2)
  316
  (lvar 0 1 e)
  (car)
  (())
  (cons)
  (cons)
  (cons)
  (return)
  (name transform-arith-terms)
)
(gset transform-arith-terms)
(pop)
(proc
  (args 1)
  (lvar 0 0 f)
  (const ((+ 0) (- 0) (* 1) (/ 1)))
  (assq)
  (cadr)
  (return)
  (name arith-term-constant)
)
(gset arith-term-constant)
(pop)
(proc
  (args 2)
  (lvar 0 1 e)
  (length)
  (1)
  (=)
  (bfl () 320)
  (save () 319)
  (lvar 0 0 f)
  (gvar arith-term-constant)
  (callj 1)
  319
  (lvar 0 1 e)
  (cons)
  (gvar rev)
  (callj 1)
  320
  (lvar 0 1 e)
  (gvar rev)
  (callj 1)
  (name prepare-arith-terms)
)
(gset prepare-arith-terms)
(pop)
(proc
  (args 5)
  (lvar 0 1 e)
  (length)
  (0)
  (=)
  (bfl () 325)
  (save () 322)
  (lvar 0 0 f)
  (gvar arith-term-constant)
  (callj 1)
  322
  (lvar 0 2 env)
  (lvar 0 3 val?)
  (lvar 0 4 more?)
  (())
  (gvar compile)
  (callj 5)
  325
  (save () 323)
  (lvar 0 0 f)
  (save () 324)
  (lvar 0 0 f)
  (lvar 0 1 e)
  (gvar prepare-arith-terms)
  (callj 2)
  324
  (gvar transform-arith-terms)
  (callj 2)
  323
  (lvar 0 2 env)
  (lvar 0 3 val?)
  (lvar 0 4 more?)
  (())
  (gvar compile)
  (callj 5)
  (name compile-arith-terms)
)
(gset compile-arith-terms)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 330)
  (#f)
  (return)
  330
  (lvar 0 0 e)
  (cdr)
  (null?)
  (bfl () 328)
  (lvar 0 0 e)
  (car)
  (return)
  328
  (save () 327)
  (gvar gensym)
  (callj 0)
  327
  (proc
    (args 1)
    (const let)
    (lvar 0 0 x)
    (lvar 1 0 e)
    (car)
    (())
    (cons)
    (cons)
    (())
    (cons)
    (const if)
    (lvar 0 0 x)
    (lvar 0 0 x)
    (const or)
    (lvar 1 0 e)
    (cdr)
    (cons)
    (())
    (cons)
    (cons)
    (cons)
    (cons)
    (())
    (cons)
    (cons)
    (cons)
    (return)
    (name ())
  )
  (callj 1)
  (name transform-or)
)
(gset transform-or)
(pop)
(proc
  (args 4)
  (save () 332)
  (lvar 0 0 e)
  (gvar transform-or)
  (callj 1)
  332
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (())
  (gvar compile)
  (callj 5)
  (name compile-or)
)
(gset compile-or)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 335)
  (#t)
  (return)
  335
  (lvar 0 0 e)
  (cdr)
  (null?)
  (bfl () 333)
  (lvar 0 0 e)
  (car)
  (return)
  333
  (const if)
  (lvar 0 0 e)
  (car)
  (const and)
  (lvar 0 0 e)
  (cdr)
  (cons)
  (#f)
  (())
  (cons)
  (cons)
  (cons)
  (cons)
  (return)
  (name transform-and)
)
(gset transform-and)
(pop)
(proc
  (args 4)
  (save () 337)
  (lvar 0 0 e)
  (gvar transform-and)
  (callj 1)
  337
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (())
  (gvar compile)
  (callj 5)
  (name compile-and)
)
(gset compile-and)
(pop)
(proc
  (args 2)
  (save () 338)
  (gvar gensym)
  (callj 0)
  338
  (proc
    (args 1)
    (const letrec)
    (lvar 0 0 loop)
    (const lambda)
    (())
    (const if)
    (lvar 1 0 test)
    (const begin)
    (save () 339)
    (lvar 1 1 body)
    (lvar 0 0 loop)
    (())
    (cons)
    (())
    (cons)
    (gvar append2)
    (callj 2)
    339
    (cons)
    (())
    (cons)
    (cons)
    (cons)
    (())
    (cons)
    (cons)
    (cons)
    (())
    (cons)
    (cons)
    (())
    (cons)
    (lvar 0 0 loop)
    (())
    (cons)
    (())
    (cons)
    (cons)
    (cons)
    (return)
    (name ())
  )
  (callj 1)
  (name transform-while)
)
(gset transform-while)
(pop)
(proc
  (args 4)
  (lvar 0 0 e)
  (car)
  (lvar 0 0 e)
  (cdr)
  (proc
    (args 2)
    (save () 340)
    (lvar 0 0 test)
    (lvar 0 1 body)
    (gvar transform-while)
    (callj 2)
    340
    (lvar 1 1 env)
    (lvar 1 2 val?)
    (lvar 1 3 more?)
    (())
    (gvar compile)
    (callj 5)
    (name ())
  )
  (callj 2)
  (name compile-while)
)
(gset compile-while)
(pop)
(proc
  (args 2)
  (lvar 0 1 one-case)
  (car)
  (const else)
  (eq?)
  (bfl () 343)
  (lvar 0 1 one-case)
  (return)
  343
  (lvar 0 1 one-case)
  (car)
  (proc
    (args 1)
    (lvar 0 0 selectors)
    (length)
    (1)
    (=)
    (bfl () 341)
    (const eqv?)
    (lvar 1 0 key-name)
    (const quote)
    (lvar 0 0 selectors)
    (car)
    (())
    (cons)
    (cons)
    (())
    (cons)
    (cons)
    (cons)
    (lvar 1 1 one-case)
    (cdr)
    (cons)
    (return)
    341
    (const memv)
    (lvar 1 0 key-name)
    (const quote)
    (lvar 0 0 selectors)
    (())
    (cons)
    (cons)
    (())
    (cons)
    (cons)
    (cons)
    (lvar 1 1 one-case)
    (cdr)
    (cons)
    (return)
    (name ())
  )
  (callj 1)
  (name transform-one-case)
)
(gset transform-one-case)
(pop)
(proc
  (args 2)
  (lvar 0 1 rest-of-case)
  (null?)
  (bfl () 347)
  (())
  (return)
  347
  (save () 345)
  (lvar 0 0 key-name)
  (lvar 0 1 rest-of-case)
  (car)
  (gvar transform-one-case)
  (callj 2)
  345
  (save () 346)
  (lvar 0 0 key-name)
  (lvar 0 1 rest-of-case)
  (cdr)
  (gvar transform-rest-of-case)
  (callj 2)
  346
  (cons)
  (return)
  (name transform-rest-of-case)
)
(gset transform-rest-of-case)
(pop)
(proc
  (args 2)
  (save () 349)
  (gvar gensym)
  (callj 0)
  349
  (proc
    (args 1)
    (const let)
    (lvar 0 0 key-name)
    (lvar 1 0 key-value)
    (())
    (cons)
    (cons)
    (())
    (cons)
    (const cond)
    (save () 350)
    (lvar 0 0 key-name)
    (lvar 1 1 body)
    (gvar transform-rest-of-case)
    (callj 2)
    350
    (cons)
    (())
    (cons)
    (cons)
    (cons)
    (return)
    (name ())
  )
  (callj 1)
  (name transform-case)
)
(gset transform-case)
(pop)
(proc
  (args 4)
  (lvar 0 0 e)
  (car)
  (lvar 0 0 e)
  (cdr)
  (proc
    (args 2)
    (save () 351)
    (lvar 0 0 key-value)
    (lvar 0 1 body)
    (gvar transform-case)
    (callj 2)
    351
    (lvar 1 1 env)
    (lvar 1 2 val?)
    (lvar 1 3 more?)
    (())
    (gvar compile)
    (callj 5)
    (name ())
  )
  (callj 2)
  (name compile-case)
)
(gset compile-case)
(pop)
(proc
  (args 6)
  (const letrec)
  (const loop)
  (const lambda)
  (lvar 0 0 vars)
  (const if)
  (lvar 0 3 test)
  (save () 352)
  (const begin)
  (())
  (cons)
  (lvar 0 4 exprs)
  (gvar append2)
  (callj 2)
  352
  (save () 353)
  (const begin)
  (())
  (cons)
  (save () 354)
  (lvar 0 5 commands)
  (save () 355)
  (const loop)
  (())
  (cons)
  (lvar 0 2 steps)
  (gvar append2)
  (callj 2)
  355
  (())
  (cons)
  (gvar append2)
  (callj 2)
  354
  (gvar append2)
  (callj 2)
  353
  (())
  (cons)
  (cons)
  (cons)
  (cons)
  (())
  (cons)
  (cons)
  (cons)
  (())
  (cons)
  (cons)
  (())
  (cons)
  (save () 356)
  (const loop)
  (())
  (cons)
  (lvar 0 1 inits)
  (gvar append2)
  (callj 2)
  356
  (())
  (cons)
  (cons)
  (cons)
  (return)
  (name transform-do)
)
(gset transform-do)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 358)
  (())
  (return)
  358
  (lvar 0 0 e)
  (caar)
  (save () 357)
  (lvar 0 0 e)
  (cdr)
  (gvar build-do-vars)
  (callj 1)
  357
  (cons)
  (return)
  (name build-do-vars)
)
(gset build-do-vars)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 361)
  (())
  (return)
  361
  (lvar 0 0 e)
  (car)
  (cadr)
  (save () 360)
  (lvar 0 0 e)
  (cdr)
  (gvar build-do-inits)
  (callj 1)
  360
  (cons)
  (return)
  (name build-do-inits)
)
(gset build-do-inits)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (car)
  (cddr)
  (null?)
  (bfl () 363)
  (lvar 0 0 e)
  (caar)
  (return)
  363
  (lvar 0 0 e)
  (car)
  (cddr)
  (car)
  (return)
  (name build-do-step-value)
)
(gset build-do-step-value)
(pop)
(proc
  (args 1)
  (lvar 0 0 e)
  (null?)
  (bfl () 367)
  (())
  (return)
  367
  (save () 365)
  (lvar 0 0 e)
  (gvar build-do-step-value)
  (callj 1)
  365
  (save () 366)
  (lvar 0 0 e)
  (cdr)
  (gvar build-do-steps)
  (callj 1)
  366
  (cons)
  (return)
  (name build-do-steps)
)
(gset build-do-steps)
(pop)
(proc
  (args 4)
  (save () 369)
  (lvar 0 0 e)
  (car)
  (gvar build-do-vars)
  (callj 1)
  369
  (save () 370)
  (lvar 0 0 e)
  (car)
  (gvar build-do-inits)
  (callj 1)
  370
  (save () 371)
  (lvar 0 0 e)
  (car)
  (gvar build-do-steps)
  (callj 1)
  371
  (lvar 0 0 e)
  (cdr)
  (caar)
  (lvar 0 0 e)
  (cdr)
  (cdar)
  (lvar 0 0 e)
  (cdr)
  (cdr)
  (proc
    (args 6)
    (save () 372)
    (lvar 0 0 vars)
    (lvar 0 1 inits)
    (lvar 0 2 steps)
    (lvar 0 3 test)
    (lvar 0 4 exprs)
    (lvar 0 5 commands)
    (gvar transform-do)
    (callj 6)
    372
    (lvar 1 1 env)
    (lvar 1 2 val?)
    (lvar 1 3 more?)
    (())
    (gvar compile)
    (callj 5)
    (name ())
  )
  (callj 6)
  (name compile-do)
)
(gset compile-do)
(pop)
(proc
  (args 2)
  (())
  (())
  (())
  (())
  (proc
    (args 4)
    (proc
      (args 1)
      (lvar 0 0 x)
      (return)
      (name my-eval)
    )
    (lset 0 0 my-eval)
    (pop)
    (proc
      (args 2)
      (lvar 0 0 x)
      (car)
      (lvar 0 1 y)
      (eq?)
      (return)
      (name starts-with)
    )
    (lset 0 1 starts-with)
    (pop)
    (proc
      (args 1)
      (lvar 0 0 exp)
      (pair?)
      (bfl () 373)
      (#f)
      (return)
      373
      (lvar 0 0 exp)
      (symbol?)
      (not)
      (return)
      (name constant?)
    )
    (lset 0 2 constant?)
    (pop)
    (proc
      (args 3)
      (save () 375)
      (lvar 0 0 left)
      (lvar 1 2 constant?)
      (callj 1)
      375
      (bfl () 377)
      (save () 376)
      (lvar 0 1 right)
      (lvar 1 2 constant?)
      (callj 1)
      376
      (br () 378)
      377
      (#f)
      378
      (bfl () 389)
      (save () 379)
      (lvar 0 0 left)
      (lvar 1 0 my-eval)
      (callj 1)
      379
      (lvar 0 2 x)
      (car)
      (eqv?)
      (bfl () 381)
      (save () 380)
      (lvar 0 1 right)
      (lvar 1 0 my-eval)
      (callj 1)
      380
      (lvar 0 2 x)
      (cdr)
      (eqv?)
      (br () 382)
      381
      (#f)
      382
      (bfl () 385)
      (const quote)
      (lvar 0 2 x)
      (())
      (cons)
      (cons)
      (return)
      385
      (const quote)
      (save () 383)
      (lvar 0 0 left)
      (lvar 1 0 my-eval)
      (callj 1)
      383
      (save () 384)
      (lvar 0 1 right)
      (lvar 1 0 my-eval)
      (callj 1)
      384
      (cons)
      (())
      (cons)
      (cons)
      (return)
      389
      (lvar 0 1 right)
      (null?)
      (bfl () 387)
      (const list)
      (lvar 0 0 left)
      (())
      (cons)
      (cons)
      (return)
      387
      (const cons)
      (lvar 0 0 left)
      (lvar 0 1 right)
      (())
      (cons)
      (cons)
      (cons)
      (return)
      (name combine-quasiquote)
    )
    (lset 0 3 combine-quasiquote)
    (pop)
    (lvar 1 0 x)
    (vector?)
    (bfl () 424)
    (const apply)
    (const vector)
    (save () 391)
    (save () 392)
    (lvar 1 0 x)
    (gvar vector->list)
    (callj 1)
    392
    (lvar 1 1 nesting)
    (gvar expand-quasiquote)
    (callj 2)
    391
    (())
    (cons)
    (cons)
    (cons)
    (return)
    424
    (lvar 1 0 x)
    (pair?)
    (bfl () 422)
    (save () 393)
    (lvar 1 0 x)
    (const unquote)
    (lvar 0 1 starts-with)
    (callj 2)
    393
    (bfl () 394)
    (lvar 1 0 x)
    (length)
    (2)
    (=)
    (br () 395)
    394
    (#f)
    395
    (bfl () 418)
    (lvar 1 1 nesting)
    (0)
    (=)
    (bfl () 397)
    (lvar 1 0 x)
    (cadr)
    (return)
    397
    (const (quote unquote))
    (save () 396)
    (lvar 1 0 x)
    (cdr)
    (lvar 1 1 nesting)
    (1)
    (-)
    (gvar expand-quasiquote)
    (callj 2)
    396
    (lvar 1 0 x)
    (lvar 0 3 combine-quasiquote)
    (callj 3)
    418
    (save () 399)
    (lvar 1 0 x)
    (const quasiquote)
    (lvar 0 1 starts-with)
    (callj 2)
    399
    (bfl () 400)
    (lvar 1 0 x)
    (length)
    (2)
    (=)
    (br () 401)
    400
    (#f)
    401
    (bfl () 416)
    (const (quote quasiquote))
    (save () 402)
    (lvar 1 0 x)
    (cdr)
    (lvar 1 1 nesting)
    (1)
    (+)
    (gvar expand-quasiquote)
    (callj 2)
    402
    (lvar 1 0 x)
    (lvar 0 3 combine-quasiquote)
    (callj 3)
    416
    (lvar 1 0 x)
    (car)
    (pair?)
    (bfl () 405)
    (lvar 1 0 x)
    (caar)
    (const unquote-splicing)
    (eq?)
    (bfl () 403)
    (lvar 1 0 x)
    (car)
    (length)
    (2)
    (=)
    (br () 404)
    403
    (#f)
    404
    (br () 406)
    405
    (#f)
    406
    (bfl () 414)
    (lvar 1 1 nesting)
    (0)
    (=)
    (bfl () 410)
    (const append)
    (lvar 1 0 x)
    (car)
    (cadr)
    (save () 407)
    (lvar 1 0 x)
    (cdr)
    (lvar 1 1 nesting)
    (gvar expand-quasiquote)
    (callj 2)
    407
    (())
    (cons)
    (cons)
    (cons)
    (return)
    410
    (save () 408)
    (lvar 1 0 x)
    (car)
    (lvar 1 1 nesting)
    (1)
    (-)
    (gvar expand-quasiquote)
    (callj 2)
    408
    (save () 409)
    (lvar 1 0 x)
    (cdr)
    (lvar 1 1 nesting)
    (gvar expand-quasiquote)
    (callj 2)
    409
    (lvar 1 0 x)
    (lvar 0 3 combine-quasiquote)
    (callj 3)
    414
    (save () 412)
    (lvar 1 0 x)
    (car)
    (lvar 1 1 nesting)
    (gvar expand-quasiquote)
    (callj 2)
    412
    (save () 413)
    (lvar 1 0 x)
    (cdr)
    (lvar 1 1 nesting)
    (gvar expand-quasiquote)
    (callj 2)
    413
    (lvar 1 0 x)
    (lvar 0 3 combine-quasiquote)
    (callj 3)
    422
    (lvar 1 0 x)
    (symbol?)
    (bfl () 420)
    (const quote)
    (lvar 1 0 x)
    (())
    (cons)
    (cons)
    (return)
    420
    (lvar 1 0 x)
    (return)
    (name ())
  )
  (callj 4)
  (name expand-quasiquote)
)
(gset expand-quasiquote)
(pop)
(proc
  (args 2)
  (lvar 0 0 x)
  (string-length)
  (lvar 0 1 y)
  (string-length)
  (+)
  (make-string)
  (proc
    (args 1)
    (save () 426)
    (0)
    (lvar 1 0 x)
    (string-length)
    (save () 427)
    (())
    (proc
      (args 1)
      (proc
        (args 2)
        (lvar 0 0 index)
        (lvar 0 1 size)
        (<)
        (bfl () 428)
        (lvar 2 0 z)
        (lvar 0 0 index)
        (lvar 3 0 x)
        (lvar 0 0 index)
        (string-ref)
        (string-set!)
        (pop)
        (lvar 0 0 index)
        (1)
        (+)
        (lvar 0 1 size)
        (lvar 1 0 loop)
        (callj 2)
        428
        (())
        (return)
        (name loop)
      )
      (lset 0 0 loop)
      (pop)
      (lvar 0 0 loop)
      (return)
      (name ())
    )
    (callj 1)
    427
    (callj 2)
    426
    (pop)
    (save () 430)
    (0)
    (lvar 1 1 y)
    (string-length)
    (save () 431)
    (())
    (proc
      (args 1)
      (proc
        (args 2)
        (lvar 0 0 index)
        (lvar 0 1 size)
        (<)
        (bfl () 432)
        (lvar 2 0 z)
        (lvar 0 0 index)
        (lvar 3 0 x)
        (string-length)
        (+)
        (lvar 3 1 y)
        (lvar 0 0 index)
        (string-ref)
        (string-set!)
        (pop)
        (lvar 0 0 index)
        (1)
        (+)
        (lvar 0 1 size)
        (lvar 1 0 loop)
        (callj 2)
        432
        (())
        (return)
        (name loop)
      )
      (lset 0 0 loop)
      (pop)
      (lvar 0 0 loop)
      (return)
      (name ())
    )
    (callj 1)
    431
    (callj 2)
    430
    (pop)
    (lvar 0 0 z)
    (return)
    (name ())
  )
  (callj 1)
  (name string-append-core)
)
(gset string-append-core)
(pop)
(proc
  (args 2)
  (lvar 0 1 n)
  (0)
  (=)
  (bfl () 436)
  (())
  (return)
  436
  (save () 434)
  (lvar 0 0 str)
  (lvar 0 1 n)
  (number->string)
  (gvar string-append-core)
  (callj 2)
  434
  (string->symbol)
  (save () 435)
  (lvar 0 0 str)
  (lvar 0 1 n)
  (1)
  (-)
  (gvar n-arguments)
  (callj 2)
  435
  (cons)
  (return)
  (name n-arguments)
)
(gset n-arguments)
(pop)
(proc
  (args 1)
  (lvar 0 0 primitive)
  (const ((car 1) (cdr 1) (caar 1) (cadr 1) (cdar 1) (cddr 1) (list-ref 2) (list-tail 2) (eqv? 2) (memq 2) (memv 2) (member 2) (assq 2) (assv 2) (cons 2) (not 1) (null? 1) (eq? 2) (symbol? 1) (pair? 1) (list? 1) (number? 1) (string? 1) (make-string 1) (string-length 1) (string-ref 2) (string-set! 3) (string=? 2) (string<? 2) (string>? 2) (string<=? 2) (string>=? 2) (string-ci<? 2) (string-ci>? 2) (string-ci<=? 2) (string-ci>=? 2) (string-ci=? 2) (string->symbol 1) (symbol->string 1) (string->number 1) (number->string 1) (char? 1) (char=? 2) (char-alphabetic? 1) (char-numeric? 1) (char-upcase 1) (char-downcase 1) (char->integer 1) (integer->char 1) (integer? 1) (real? 1) (+ 2) (- 2) (* 2) (/ 2) (quotient 2) (remainder 2) (modulo 2) (floor 1) (ceiling 1) (truncate 1) (round 1) (bitwise-and 2) (bitwise-or 2) (bitwise-xor 2) (bitwise-not 1) (arithmetic-shift 2) (inexact->exact 1) (exact->inexact 1) (length 1) (= 2) (< 2) (> 2) (<= 2) (>= 2) (equal? 2) (set-car! 2) (set-cdr! 2) (vector? 1) (make-vector 1) (vector-length 1) (vector-ref 2) (vector-set! 3) (vector-fill! 2) (boolean? 1) (procedure? 1) (eval 1) (apply 2) (write 1) (write-char 1) (newline 0) (read-char 0) (eof-object? 1) (read-binary 2) (write-binary 2) (open-input-file 1) (open-output-file 1) (close-input-port 1) (close-output-port 1) (exit 1) (save-binary 1) (system 1)))
  (assq)
  (cadr)
  (return)
  (name n-parameters)
)
(gset n-parameters)
(pop)
(proc
  (args 2)
  (lvar 0 0 procedure)
  (pair?)
  (bfl () 442)
  (lvar 0 0 procedure)
  (car)
  (const lambda)
  (eq?)
  (bfl () 440)
  (lvar 0 0 procedure)
  (cadr)
  (null?)
  (bfl () 438)
  (#t)
  (return)
  438
  (#f)
  (return)
  440
  (#f)
  (return)
  442
  (#f)
  (return)
  (name procedure-has-no-args?)
)
(gset procedure-has-no-args?)
(pop)
(proc
  (args 4)
  (lvar 0 0 args)
  (car)
  (lvar 0 0 args)
  (cadr)
  (save () 444)
  (gvar gen-label)
  (callj 0)
  444
  (proc
    (args 3)
    (save () 445)
    (lvar 0 2 k)
    (gvar compile-save)
    (callj 1)
    445
    (save () 446)
    (save () 447)
    (lvar 0 1 arguments)
    (lvar 1 1 env)
    (#t)
    (#t)
    (())
    (gvar compile)
    (callj 5)
    447
    (save () 448)
    (save () 449)
    (gvar compile-argl)
    (callj 0)
    449
    (save () 450)
    (save () 451)
    (lvar 0 0 procedure)
    (lvar 1 1 env)
    (#t)
    (#t)
    (())
    (gvar compile)
    (callj 5)
    451
    (save () 452)
    (save () 453)
    (gvar compile-callnj)
    (callj 0)
    453
    (save () 454)
    (save () 455)
    (lvar 0 2 k)
    (gvar compile-label)
    (callj 1)
    455
    (save () 456)
    (save () 457)
    (lvar 1 2 val?)
    (gvar if-no-val-compile-pop)
    (callj 1)
    457
    (save () 458)
    (lvar 1 3 more?)
    (gvar if-no-more-compile-return)
    (callj 1)
    458
    (gvar append2)
    (callj 2)
    456
    (gvar append2)
    (callj 2)
    454
    (gvar append2)
    (callj 2)
    452
    (gvar append2)
    (callj 2)
    450
    (gvar append2)
    (callj 2)
    448
    (gvar append2)
    (callj 2)
    446
    (gvar append2)
    (callj 2)
    (name ())
  )
  (callj 3)
  (name compile-apply-apply)
)
(gset compile-apply-apply)
(pop)
(proc
  (args 4)
  (save () 459)
  (gvar gen-label)
  (callj 0)
  459
  (save () 460)
  (gvar gen-label)
  (callj 0)
  460
  (proc
    (args 2)
    (save () 461)
    (lvar 0 0 m)
    (gvar compile-save)
    (callj 1)
    461
    (save () 462)
    (save () 463)
    (lvar 0 1 n)
    (gvar compile-save)
    (callj 1)
    463
    (save () 464)
    (save () 465)
    (lvar 1 0 args)
    (lvar 1 1 env)
    (gvar compile-list-of-values)
    (callj 2)
    465
    (save () 466)
    (save () 467)
    (const gvar)
    (const eval)
    (())
    (cons)
    (cons)
    (gvar gen-instruction)
    (callj 1)
    467
    (save () 468)
    (save () 469)
    (1)
    (gvar compile-callj)
    (callj 1)
    469
    (save () 470)
    (save () 471)
    (lvar 0 1 n)
    (gvar compile-label)
    (callj 1)
    471
    (save () 472)
    (save () 473)
    (const assemble)
    (())
    (cons)
    (gvar gen-instruction)
    (callj 1)
    473
    (save () 474)
    (save () 475)
    (const const)
    (())
    (())
    (cons)
    (cons)
    (gvar gen-instruction)
    (callj 1)
    475
    (save () 476)
    (save () 477)
    (const cons)
    (())
    (cons)
    (gvar gen-instruction)
    (callj 1)
    477
    (save () 478)
    (save () 479)
    (const makeproc)
    (())
    (cons)
    (gvar gen-instruction)
    (callj 1)
    479
    (save () 480)
    (save () 481)
    (0)
    (gvar compile-callj)
    (callj 1)
    481
    (save () 482)
    (save () 483)
    (lvar 0 0 m)
    (gvar compile-label)
    (callj 1)
    483
    (save () 484)
    (save () 485)
    (lvar 1 2 val?)
    (gvar if-no-val-compile-pop)
    (callj 1)
    485
    (save () 486)
    (lvar 1 3 more?)
    (gvar if-no-more-compile-return)
    (callj 1)
    486
    (gvar append2)
    (callj 2)
    484
    (gvar append2)
    (callj 2)
    482
    (gvar append2)
    (callj 2)
    480
    (gvar append2)
    (callj 2)
    478
    (gvar append2)
    (callj 2)
    476
    (gvar append2)
    (callj 2)
    474
    (gvar append2)
    (callj 2)
    472
    (gvar append2)
    (callj 2)
    470
    (gvar append2)
    (callj 2)
    468
    (gvar append2)
    (callj 2)
    466
    (gvar append2)
    (callj 2)
    464
    (gvar append2)
    (callj 2)
    462
    (gvar append2)
    (callj 2)
    (name ())
  )
  (callj 2)
  (name compile-apply-eval)
)
(gset compile-apply-eval)
(pop)
(())
(gset primitive-procedure-references)
(pop)
(proc
  (args 1)
  (lvar 0 0 p)
  (gvar primitive-procedure-references)
  (assq)
  (not)
  (bfl () 488)
  (save () 487)
  (gvar primitive-procedure-references)
  (lvar 0 0 p)
  (gvar primitive-procedure-references)
  (length)
  (())
  (cons)
  (cons)
  (())
  (cons)
  (gvar append2)
  (callj 2)
  487
  (gset primitive-procedure-references)
  (return)
  488
  (())
  (return)
  (name log-primitive-procedure-reference)
)
(gset log-primitive-procedure-reference)
(pop)
(proc
  (args 4)
  (const vector-ref)
  (const __primitives)
  (lvar 0 0 e)
  (gvar primitive-procedure-references)
  (assq)
  (cadr)
  (())
  (cons)
  (cons)
  (cons)
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (())
  (gvar compile)
  (callj 5)
  (name compile-primitive-procedure-reference)
)
(gset compile-primitive-procedure-reference)
(pop)
(proc
  (args 3)
  (())
  (proc
    (args 1)
    (proc
      (args 1)
      (lvar 0 0 n)
      (proc
        (args 1)
        (lvar 0 0 g:::1)
        (0)
        (eqv?)
        (bfl () 496)
        (())
        (return)
        496
        (lvar 0 0 g:::1)
        (1)
        (eqv?)
        (bfl () 494)
        (const (n1))
        (return)
        494
        (lvar 0 0 g:::1)
        (2)
        (eqv?)
        (bfl () 492)
        (const (n1 n2))
        (return)
        492
        (lvar 0 0 g:::1)
        (const 3)
        (eqv?)
        (bfl () 490)
        (const (n1 n2 n3))
        (return)
        490
        (#f)
        (return)
        (name ())
      )
      (callj 1)
      (name build-n-arguments)
    )
    (lset 0 0 build-n-arguments)
    (pop)
    (const vector-set!)
    (const __primitives)
    (lvar 1 2 n)
    (const lambda)
    (save () 498)
    (lvar 1 1 n-args)
    (lvar 0 0 build-n-arguments)
    (callj 1)
    498
    (lvar 1 0 primitive)
    (save () 499)
    (lvar 1 1 n-args)
    (lvar 0 0 build-n-arguments)
    (callj 1)
    499
    (cons)
    (())
    (cons)
    (cons)
    (cons)
    (())
    (cons)
    (cons)
    (cons)
    (cons)
    (return)
    (name ())
  )
  (callj 1)
  (name build-primitive-reference)
)
(gset build-primitive-reference)
(pop)
(proc
  (args 2)
  (lvar 0 0 primitive-procedure-references)
  (null?)
  (bfl () 503)
  (())
  (return)
  503
  (save () 500)
  (lvar 0 0 primitive-procedure-references)
  (caar)
  (save () 501)
  (lvar 0 0 primitive-procedure-references)
  (caar)
  (gvar n-parameters)
  (callj 1)
  501
  (lvar 0 1 n)
  (gvar build-primitive-reference)
  (callj 3)
  500
  (save () 502)
  (lvar 0 0 primitive-procedure-references)
  (cdr)
  (lvar 0 1 n)
  (1)
  (+)
  (gvar build-primitive-references)
  (callj 2)
  502
  (cons)
  (return)
  (name build-primitive-references)
)
(gset build-primitive-references)
(pop)
(proc
  (args 5)
  (save () 505)
  (lvar 0 0 e)
  (gvar self-evaluating?)
  (callj 1)
  505
  (bfl () 580)
  (lvar 0 0 e)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-const)
  (callj 3)
  580
  (save () 506)
  (lvar 0 0 e)
  (gvar quoted?)
  (callj 1)
  506
  (bfl () 578)
  (save () 507)
  (lvar 0 0 e)
  (gvar text-of-quotation)
  (callj 1)
  507
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-const)
  (callj 3)
  578
  (lvar 0 0 e)
  (symbol?)
  (bfl () 509)
  (save () 508)
  (lvar 0 0 e)
  (0)
  (lvar 0 1 env)
  (gvar primitive-procedure?)
  (callj 3)
  508
  (br () 510)
  509
  (#f)
  510
  (bfl () 576)
  (save () 511)
  (lvar 0 0 e)
  (gvar log-primitive-procedure-reference)
  (callj 1)
  511
  (pop)
  (lvar 0 0 e)
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-primitive-procedure-reference)
  (callj 4)
  576
  (save () 512)
  (lvar 0 0 e)
  (gvar variable?)
  (callj 1)
  512
  (bfl () 574)
  (lvar 0 0 e)
  (save () 513)
  (lvar 0 0 e)
  (lvar 0 1 env)
  (gvar variable-location)
  (callj 2)
  513
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-var)
  (callj 4)
  574
  (save () 514)
  (lvar 0 0 e)
  (gvar definition?)
  (callj 1)
  514
  (bfl () 572)
  (lvar 0 0 e)
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-definition)
  (callj 4)
  572
  (save () 515)
  (lvar 0 0 e)
  (gvar assignment?)
  (callj 1)
  515
  (bfl () 570)
  (save () 516)
  (lvar 0 0 e)
  (gvar assignment-variable)
  (callj 1)
  516
  (save () 517)
  (lvar 0 0 e)
  (gvar assignment-value)
  (callj 1)
  517
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-assignment)
  (callj 5)
  570
  (save () 518)
  (lvar 0 0 e)
  (gvar lambda?)
  (callj 1)
  518
  (bfl () 568)
  (lvar 0 0 e)
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (lvar 0 4 name)
  (gvar compile-procedure)
  (callj 5)
  568
  (save () 519)
  (lvar 0 0 e)
  (gvar conditional?)
  (callj 1)
  519
  (bfl () 566)
  (save () 520)
  (lvar 0 0 e)
  (gvar clauses)
  (callj 1)
  520
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-cond)
  (callj 4)
  566
  (save () 521)
  (lvar 0 0 e)
  (gvar if?)
  (callj 1)
  521
  (bfl () 564)
  (lvar 0 0 e)
  (cadr)
  (lvar 0 0 e)
  (cddr)
  (car)
  (lvar 0 0 e)
  (cddr)
  (cdr)
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-if)
  (callj 6)
  564
  (save () 522)
  (lvar 0 0 e)
  (gvar let?)
  (callj 1)
  522
  (bfl () 562)
  (lvar 0 0 e)
  (cdr)
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-let)
  (callj 4)
  562
  (save () 523)
  (lvar 0 0 e)
  (gvar let*?)
  (callj 1)
  523
  (bfl () 560)
  (lvar 0 0 e)
  (cdr)
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-let*)
  (callj 4)
  560
  (save () 524)
  (lvar 0 0 e)
  (gvar letrec?)
  (callj 1)
  524
  (bfl () 558)
  (lvar 0 0 e)
  (cdr)
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-letrec)
  (callj 4)
  558
  (save () 525)
  (lvar 0 0 e)
  (gvar begin?)
  (callj 1)
  525
  (bfl () 556)
  (lvar 0 0 e)
  (cdr)
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-sequence)
  (callj 4)
  556
  (save () 526)
  (lvar 0 0 e)
  (gvar list-?)
  (callj 1)
  526
  (bfl () 554)
  (lvar 0 0 e)
  (cdr)
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-list)
  (callj 4)
  554
  (save () 527)
  (lvar 0 0 e)
  (gvar arith-terms?)
  (callj 1)
  527
  (bfl () 552)
  (lvar 0 0 e)
  (car)
  (lvar 0 0 e)
  (cdr)
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-arith-terms)
  (callj 5)
  552
  (save () 528)
  (lvar 0 0 e)
  (gvar or?)
  (callj 1)
  528
  (bfl () 550)
  (lvar 0 0 e)
  (cdr)
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-or)
  (callj 4)
  550
  (save () 529)
  (lvar 0 0 e)
  (gvar and?)
  (callj 1)
  529
  (bfl () 548)
  (lvar 0 0 e)
  (cdr)
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-and)
  (callj 4)
  548
  (save () 530)
  (lvar 0 0 e)
  (gvar while?)
  (callj 1)
  530
  (bfl () 546)
  (lvar 0 0 e)
  (cdr)
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-while)
  (callj 4)
  546
  (save () 531)
  (lvar 0 0 e)
  (gvar case?)
  (callj 1)
  531
  (bfl () 544)
  (lvar 0 0 e)
  (cdr)
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-case)
  (callj 4)
  544
  (save () 532)
  (lvar 0 0 e)
  (gvar do?)
  (callj 1)
  532
  (bfl () 542)
  (lvar 0 0 e)
  (cdr)
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-do)
  (callj 4)
  542
  (save () 533)
  (lvar 0 0 e)
  (gvar quasiquoted?)
  (callj 1)
  533
  (bfl () 540)
  (save () 534)
  (lvar 0 0 e)
  (cadr)
  (0)
  (gvar expand-quasiquote)
  (callj 2)
  534
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (lvar 0 4 name)
  (gvar compile)
  (callj 5)
  540
  (save () 535)
  (lvar 0 0 e)
  (gvar application?)
  (callj 1)
  535
  (bfl () 538)
  (save () 536)
  (lvar 0 0 e)
  (gvar operator)
  (callj 1)
  536
  (save () 537)
  (lvar 0 0 e)
  (gvar operands)
  (callj 1)
  537
  (lvar 0 1 env)
  (lvar 0 2 val?)
  (lvar 0 3 more?)
  (gvar compile-apply)
  (callj 5)
  538
  (const "unknown expression type -- ")
  (lvar 0 0 e)
  (gvar my-error)
  (callj 2)
  (name compile)
)
(gset compile)
(pop)
(proc
  (args 5)
  (save () 582)
  (lvar 0 0 procedure)
  (lvar 0 1 args)
  (length)
  (lvar 0 2 env)
  (gvar primitive-procedure?)
  (callj 3)
  582
  (proc
    (args 1)
    (lvar 0 0 primitive-procedure)
    (bfl () 616)
    (save () 583)
    (lvar 1 3 val?)
    (lvar 0 0 primitive-procedure)
    (gvar no-val-and-no-side-effect?)
    (callj 2)
    583
    (bfl () 594)
    (lvar 1 1 args)
    (lvar 1 2 env)
    (#f)
    (lvar 1 4 more?)
    (gvar compile-sequence)
    (callj 4)
    594
    (lvar 0 0 primitive-procedure)
    (car)
    (const apply)
    (eq?)
    (bfl () 592)
    (lvar 1 1 args)
    (lvar 1 2 env)
    (lvar 1 3 val?)
    (lvar 1 4 more?)
    (gvar compile-apply-apply)
    (callj 4)
    592
    (lvar 0 0 primitive-procedure)
    (car)
    (const eval)
    (eq?)
    (bfl () 590)
    (lvar 1 1 args)
    (lvar 1 2 env)
    (lvar 1 3 val?)
    (lvar 1 4 more?)
    (gvar compile-apply-eval)
    (callj 4)
    590
    (save () 584)
    (lvar 1 1 args)
    (lvar 1 2 env)
    (gvar compile-list-of-values)
    (callj 2)
    584
    (save () 585)
    (save () 586)
    (lvar 0 0 primitive-procedure)
    (car)
    (gvar gen-opcode)
    (callj 1)
    586
    (save () 587)
    (save () 588)
    (lvar 1 3 val?)
    (gvar if-no-val-compile-pop)
    (callj 1)
    588
    (save () 589)
    (lvar 1 4 more?)
    (gvar if-no-more-compile-return)
    (callj 1)
    589
    (gvar append2)
    (callj 2)
    587
    (gvar append2)
    (callj 2)
    585
    (gvar append2)
    (callj 2)
    616
    (save () 596)
    (lvar 1 0 procedure)
    (lvar 1 1 args)
    (gvar procedure-has-no-args?)
    (callj 2)
    596
    (bfl () 614)
    (lvar 1 0 procedure)
    (cddr)
    (lvar 1 2 env)
    (lvar 1 3 val?)
    (lvar 1 4 more?)
    (gvar compile-sequence)
    (callj 4)
    614
    (lvar 1 4 more?)
    (bfl () 612)
    (save () 597)
    (gvar gen-label)
    (callj 0)
    597
    (proc
      (args 1)
      (save () 598)
      (lvar 0 0 k)
      (gvar compile-save)
      (callj 1)
      598
      (save () 599)
      (save () 600)
      (lvar 2 1 args)
      (lvar 2 2 env)
      (gvar compile-list-of-values)
      (callj 2)
      600
      (save () 601)
      (save () 602)
      (lvar 2 0 procedure)
      (lvar 2 2 env)
      (#t)
      (#t)
      (())
      (gvar compile)
      (callj 5)
      602
      (save () 603)
      (save () 604)
      (lvar 2 1 args)
      (length)
      (gvar compile-callj)
      (callj 1)
      604
      (save () 605)
      (save () 606)
      (lvar 0 0 k)
      (gvar compile-label)
      (callj 1)
      606
      (save () 607)
      (lvar 2 3 val?)
      (gvar if-no-val-compile-pop)
      (callj 1)
      607
      (gvar append2)
      (callj 2)
      605
      (gvar append2)
      (callj 2)
      603
      (gvar append2)
      (callj 2)
      601
      (gvar append2)
      (callj 2)
      599
      (gvar append2)
      (callj 2)
      (name ())
    )
    (callj 1)
    612
    (save () 608)
    (lvar 1 1 args)
    (lvar 1 2 env)
    (gvar compile-list-of-values)
    (callj 2)
    608
    (save () 609)
    (save () 610)
    (lvar 1 0 procedure)
    (lvar 1 2 env)
    (#t)
    (#t)
    (())
    (gvar compile)
    (callj 5)
    610
    (save () 611)
    (lvar 1 1 args)
    (length)
    (gvar compile-callj)
    (callj 1)
    611
    (gvar append2)
    (callj 2)
    609
    (gvar append2)
    (callj 2)
    (name ())
  )
  (callj 1)
  (name compile-apply)
)
(gset compile-apply)
(pop)
(proc
  (args 1)
  (lvar 0 0 instruction)
  (null?)
  (bfl () 618)
  (#f)
  (return)
  618
  (lvar 0 0 instruction)
  (car)
  (const label)
  (eq?)
  (return)
  (name label?)
)
(gset label?)
(pop)
(proc
  (args 1)
  (lvar 0 0 code)
  (cadr)
  (return)
  (name proc-code)
)
(gset proc-code)
(pop)
(proc
  (args 2)
  (save () 620)
  (lvar 0 1 level)
  (gvar indent)
  (callj 1)
  620
  (pop)
  (save () 621)
  (lvar 0 0 instruction)
  (gvar label?)
  (callj 1)
  621
  (bfl () 629)
  (lvar 0 0 instruction)
  (cadr)
  (gvar display-line)
  (callj 1)
  629
  (save () 622)
  (lvar 0 0 instruction)
  (gvar compound-procedure?)
  (callj 1)
  622
  (bfl () 627)
  (save () 623)
  (const "(proc")
  (gvar display-line)
  (callj 1)
  623
  (pop)
  (save () 624)
  (save () 625)
  (lvar 0 0 instruction)
  (gvar proc-code)
  (callj 1)
  625
  (lvar 0 1 level)
  (1)
  (+)
  (gvar print-code)
  (callj 2)
  624
  (pop)
  (save () 626)
  (lvar 0 1 level)
  (gvar indent)
  (callj 1)
  626
  (pop)
  (const ")")
  (gvar display-line)
  (callj 1)
  627
  (lvar 0 0 instruction)
  (gvar write-line)
  (callj 1)
  (name print-instruction)
)
(gset print-instruction)
(pop)
(proc
  (args 2)
  (lvar 0 0 code)
  (null?)
  (not)
  (bfl () 632)
  (save () 631)
  (lvar 0 0 code)
  (car)
  (lvar 0 1 level)
  (gvar print-instruction)
  (callj 2)
  631
  (pop)
  (lvar 0 0 code)
  (cdr)
  (lvar 0 1 level)
  (gvar print-code)
  (callj 2)
  632
  (())
  (return)
  (name print-code)
)
(gset print-code)
(pop)
(proc
  (args 1)
  (lvar 0 0 code)
  (null?)
  (not)
  (bfl () 635)
  (save () 634)
  (lvar 0 0 code)
  (car)
  (0)
  (gvar print-code)
  (callj 2)
  634
  (pop)
  (lvar 0 0 code)
  (cdr)
  (gvar display-code)
  (callj 1)
  635
  (())
  (return)
  (name display-code)
)
(gset display-code)
(pop)
(proc
  (args 0)
  (save () 637)
  (gvar read)
  (callj 0)
  637
  (proc
    (args 1)
    (lvar 0 0 e)
    (eof-object?)
    (bfl () 640)
    (())
    (return)
    640
    (save () 638)
    (lvar 0 0 e)
    (())
    (#t)
    (#t)
    (())
    (gvar compile)
    (callj 5)
    638
    (save () 639)
    (gvar compile-scheme)
    (callj 0)
    639
    (cons)
    (return)
    (name ())
  )
  (callj 1)
  (name compile-scheme)
)
(gset compile-scheme)
(pop)
(proc
  (args 1)
  (lvar 0 0 library-procedures)
  (null?)
  (bfl () 645)
  (())
  (return)
  645
  (lvar 0 0 library-procedures)
  (cdar)
  (car)
  (bfl () 643)
  (lvar 0 0 library-procedures)
  (cdar)
  (cdr)
  (car)
  (save () 642)
  (lvar 0 0 library-procedures)
  (cdr)
  (gvar get-library-procedures)
  (callj 1)
  642
  (cons)
  (return)
  643
  (lvar 0 0 library-procedures)
  (cdr)
  (gvar get-library-procedures)
  (callj 1)
  (name get-library-procedures)
)
(gset get-library-procedures)
(pop)
(proc
  (args 1)
  (lvar 0 0 library-procedures)
  (null?)
  (bfl () 649)
  (())
  (return)
  649
  (save () 647)
  (lvar 0 0 library-procedures)
  (car)
  (())
  (#t)
  (#t)
  (())
  (gvar compile)
  (callj 5)
  647
  (save () 648)
  (lvar 0 0 library-procedures)
  (cdr)
  (gvar compile-library-procedures)
  (callj 1)
  648
  (cons)
  (return)
  (name compile-library-procedures)
)
(gset compile-library-procedures)
(pop)
(save () 651)
(gvar compile-scheme)
(callj 0)
651
(gset top-level)
(pop)
(save () 652)
(const "(")
(gvar display-line)
(callj 1)
652
(gvar program-has-call/cc)
(bfl () 654)
(save () 653)
(gvar call/cc-code)
(gvar display-code)
(callj 1)
653
(br () 655)
654
(())
655
(save () 656)
(save () 657)
(save () 658)
(gvar library-procedures)
(gvar get-library-procedures)
(callj 1)
658
(gvar compile-library-procedures)
(callj 1)
657
(proc
  (args 1)
  (gvar primitive-procedure-references)
  (null?)
  (not)
  (bfl () 664)
  (save () 659)
  (save () 660)
  (gvar primitive-procedure-references)
  (0)
  (gvar build-primitive-references)
  (callj 2)
  660
  (proc
    (args 1)
    (save () 661)
    (save () 662)
    (const define)
    (const __primitives)
    (const make-vector)
    (lvar 0 0 list-of-primitive-procs)
    (length)
    (())
    (cons)
    (cons)
    (())
    (cons)
    (cons)
    (cons)
    (())
    (#t)
    (#t)
    (())
    (gvar compile)
    (callj 5)
    662
    (())
    (cons)
    (gvar display-code)
    (callj 1)
    661
    (pop)
    (save () 663)
    (const begin)
    (lvar 0 0 list-of-primitive-procs)
    (cons)
    (())
    (#t)
    (#t)
    (())
    (gvar compile)
    (callj 5)
    663
    (())
    (cons)
    (gvar display-code)
    (callj 1)
    (name ())
  )
  (callj 1)
  659
  (pop)
  (br () 665)
  664
  665
  (save () 666)
  (lvar 0 0 library-procedures-code)
  (gvar display-code)
  (callj 1)
  666
  (pop)
  (gvar top-level)
  (gvar display-code)
  (callj 1)
  (name ())
)
(callj 1)
656
(save () 667)
(const "(halt)")
(gvar display-line)
(callj 1)
667
(save () 668)
(const ")")
(gvar display-line)
(callj 1)
668
(halt)
)
